std::vector<int> v = {1,2,3,4,5};
auto i = std::remove(v.begin(),v.end(),3);
for(auto j = v.begin(); j!= v.end();++j)
std::cout << *j;
uscita effettiva: 12455
rimuovere non funziona correttamente
dove viene aggiunto 5 viene?
output desiderato: 1245
Come per ottenere lo stesso?
Io in realtà voglio la dimensione del vettore per cambiare, la risposta data da Prasoon Saurav sembra corretto
@Rookie: Guarda quel 'remove()' chiamare di nuovo. Quell'algoritmo vede una sequenza e non ha accesso al contenitore, quindi come potrebbe rimuovere qualcosa da esso? – sbi
"l'idioma di cancellazione-cancellazione" - che è dato proprio alla fine della pagina, nelle "note". –
@GMan: intendevo sviare la risposta ed eliminare il mio commento sopra. Perché hai cancellato la tua risposta? Contiene un punto importante che Prasoon non aveva ancora fatto (ancora). – sbi