Discussione: C++ erase da vector
View Single Post
Old 01-07-2002, 12:36   #2
/\/\@®¢Ø
Bannato
 
L'Avatar di /\/\@®¢Ø
 
Iscritto dal: Jul 2000
Città: Malo (VI)
Messaggi: 1000
[caveat: vado a memoria]
Con gli iteratori puoi usare non solo gli operatori ++ ma anche la somma
e quindi per eliminare il 5o elemento ( ad esempio ) puoi scrivere

Codice:
vector<Foo> v<
...

v.erase( v.begin() + 5 );
Se proprio gli iteratori non ti vanno a genio, e la posizione non e' importante puoi spostare l'elemento in fondo e toglierlo:

Codice:
swap( v[5] , v[ v.size()-1 ] );
v.pop_back();
questa per altro e' probabilmente piu' efficiente visto che eviti di 'scalare' tutte gli elementi successivi a quello eliminato di una posizione
/\/\@®¢Ø è offline   Rispondi citando il messaggio o parte di esso