Problem

2/8

Iteratore nel vettore

Theory Click to read/hide

Iteratori
Un modo per scorrere gli elementi nei contenitori (strutture dati) è l'iteratore (iteratore ), disponibili in diversi tipi.
 
Iterator - struttura dati che « indica» ; su qualche elemento contenitore e (per alcuni contenitori) può passare all'elemento precedente/successivo.

Il vettore utilizza il più potente - iteratore ad accesso casuale(iteratore ad accesso casuale).  Un iteratore ad accesso casuale può accedere a un elemento arbitrario del vettore oltre al movimento sequenziale.

I vantaggi degli iteratori
1)  Quando si eliminano elementi e si esegue l'iterazione sugli elementi utilizzando gli indici ([]), è necessario tenere sempre traccia del numero di elementi rimanenti in modo da non andare oltre il vettore e, utilizzando un iteratore, può usare end() che indica la fine del vettore.
2) Utilizzando un iteratore, puoi facilmente rimuovere e inserire dinamicamente elementi in un vettore. 
 
Dichiarazione iteratore
1) Dichiarare un iteratore per un vettore intero e puntarlo al primo elemento nel vettore. vettore <int> miovettore = { 1, 2, 3, 4, 5 }; vector <int>::iterator it = myvector.begin();
2) Dichiarare un iteratore per un vettore intero e puntarlo all'elemento dopo l'ultimo nel vettore. vettore <int> miovettore = { 1, 2, 3, 4, 5 }; vector <int>::iterator it = myvector.end(); // punta all'elemento dopo l'ultimo, vettore <int>::iteratore it1 = miovettore.end() - 1 ; // indica l'ultimo elemento.  
Ottenere e visualizzare un valore
Recupero e visualizzazione dell'elemento indicato dall'iteratore. cout << *it;  
Sposta la posizione dell'iteratore
Sposta la posizione dell'iteratore di 3 posizioni in avanti.
avanzare(it, 3); 
 
Creazione di un nuovo iteratore da uno esistente
Crea un nuovo iteratore basato su uno esistente, avanzando di 3 posizioni. auto it1 = next(it, 3);  
Visualizzazione dei valori vettoriali utilizzando un iteratore
vettore<int>::iteratore it; for (it = miovettore.begin(); it != miovettore.end(); ++it) {   cout<<*it<<" ";  }
Attraversamento vettoriale
Per attraversare il vettore dall'ultimo elemento al primo, viene utilizzato un iteratore inverso reverse_iterator, ottenuto da:
1) rbegin() -  restituisce un iteratore inverso che punta all'ultimo elemento del vettore, l'applicazione dell'operazione ++ porta alla transizione all'elemento precedente;
2) rend() -  restituisce un iteratore inverso che punta all'elemento precedente del vettore, l'applicazione dell'operazione ++ porta alla transizione  al prossimo. vector<int>::reverse_iterator it = myvector.rbegin();  // punta all'ultimo elemento vector<int>::reverse_iterator it = myvector.rend();    // punta a un elemento,   // che precede il primo,

Problem

Ti viene assegnata una sequenza di numeri interi.  Scrivi un programma che inverte un vettore usando reverse_iterator.

Input
Primo numero dato N - il numero di elementi nella sequenza (1<= N <= 100). Quindi vengono scritti N numeri separati da uno spazio.
 
Uscita
Mostra tutti gli elementi del vettore risultante in una riga, separandoli con spazi.
 
Esempio
# Input Uscita
1 5
1 2 3 4 5
5 4 3 2 1