PDA

Visualizza la versione completa : [c++ stl]vector alla rovescia


giuseppe500
16-11-2008, 20:06
Ciao.
Sto studiando l'str e i container.
ho creato un vector<tipo>vettore:
Nel vector inserisco una serie di dati ,da 1a 5 ad es
012345 e vorrei riprendere i valori dal vector cosi' come sono in modo da ottenere:
012345.
Per inserire utilizzo push_back(item);
per leggerlo dal primo all'ultimo nell ordine sopracitato cos ' meglio utilizzare?
il caso di usare un reverse_iterator?
Come?
grazie.

shodan
16-11-2008, 20:31
Hai paura che si bruci il pc se fai qualche prova? :)
A ogni modo se vuoi avere i dati nell'ordine di inserimento, devi usare un iterator.
Se li vuoi avere rovesciati, un reverse_iterator.



#include <algorithm>
#include <iterator>

// stampa 012345
std::copy(v.begin(),v.end(), std::ostream_iterator<tipo_del_vector>(cout));

// stampa 543210
std::copy(v.rbegin(),v.rend(), std::ostream_iterator<tipo_del_vector>(cout));

MItaly
16-11-2008, 23:09
E in ogni caso ad un array puoi accedere anche mediante indice, per cui lo puoi leggere in qualunque ordine senza nemmeno usare iteratori.

Loading