PDA

Visualizza la versione completa : [Linguaggio c++] Come eliminare l'elemento di un vector?


magr88
18-05-2009, 19:57
Ciao a tutti sto cercando in tutti i modi di eliminare l'elemento i-esimo di un vector ma senza successo... :dh:
Ho provato cosi:

lista.erase(valore_da_eliminare);

ma non fa quello che desidero..
Qualcuno ha qualche consiglio??

shodan
18-05-2009, 20:21
valore_da_eliminare un iteratore, vero?

magr88
18-05-2009, 20:44
Originariamente inviato da magr88
Ciao a tutti sto cercando in tutti i modi di eliminare l'elemento i-esimo di un vector ma senza successo... :dh:
Ho provato cosi:

lista.erase(valore_da_eliminare);

ma non fa quello che desidero..
Qualcuno ha qualche consiglio??

No l'elemento che voglio eliminare dalla lista...

shodan
18-05-2009, 21:03
erase() accetta un iteratore, non l'elemento da eliminare.

dovresti fare qualcosa del genere:


vector< tipo >::iterator it = std::remove(lista.begin(),lista.end(),valore_da_el iminare);
lista.erase(it,lista.end());

magr88
18-05-2009, 21:24
Originariamente inviato da shodan
erase() accetta un iteratore, non l'elemento da eliminare.

dovresti fare qualcosa del genere:


vector< tipo >::iterator it = std::remove(lista.begin(),lista.end(),valore_da_el iminare);
lista.erase(it,lista.end());



mi da errore perche remove nn prende tre argomenti...

shodan
18-05-2009, 21:43
Forse stiamo parlando di cose diverse. Io parlo di questa remove.
http://www.cplusplus.com/reference/algorithm/remove/

Posta il codice.

mondobimbi
20-05-2009, 10:10
Originariamente inviato da magr88
Ciao a tutti sto cercando in tutti i modi di eliminare l'elemento i-esimo di un vector ma senza successo... :dh:
Ho provato cosi:

lista.erase(valore_da_eliminare);

ma non fa quello che desidero..
Qualcuno ha qualche consiglio??

lista.erase( lista.begin() + i );

Loading