Problem

2/8

Itérateur en vecteur

Theory Click to read/hide

Itérateurs
L'itérateur (iterator ), qui existent en plusieurs types.
 
Itérateur - structure de données qui « indique» ; sur certains éléments de conteneur, et (pour certains conteneurs) peut naviguer vers l'élément précédent/suivant.

Le vecteur utilise le plus puissant - itérateur à accès aléatoire(itérateur à accès aléatoire).  Un itérateur à accès aléatoire peut accéder à un élément arbitraire du vecteur en plus du mouvement séquentiel.

Les avantages des itérateurs
1)  ; Lors de la suppression d'éléments et de l'itération sur des éléments à l'aide d'indices ([]), nous devons garder une trace du nombre d'éléments restants tout le temps afin de ne pas aller au-delà du vecteur, et en utilisant un itérateur, vous peut utiliser end()< /code> indiquant la fin du vecteur.
2) À l'aide d'un itérateur, vous pouvez facilement supprimer et insérer dynamiquement des éléments dans un vecteur. 
 
Déclaration de l'itérateur
1) Déclarer un itérateur pour un vecteur entier et le pointer vers le premier élément du vecteur. vecteur <int> monvecteur = { 1, 2, 3, 4, 5 } ; vecteur <int>::iterator it = myvector.begin();
2) Déclarer un itérateur pour un vecteur entier et le pointer vers l'élément après le dernierdans le vecteur. vecteur <int> monvecteur = { 1, 2, 3, 4, 5 } ; vecteur <int>::iterator it = myvector.end(); // pointe sur l'élément après le dernier, vecteur <int>::iterator it1 = myvector.end() - 1 ; // pointant vers le dernier élément.  
Obtenir et afficher une valeur
Obtenir et afficher l'élément pointé par l'itérateur. cout << *il ;  
Déplacer la position de l'itérateur
Déplacez la position de l'itérateur de 3 positions vers l'avant. avance(il, 3);  
Créer un nouvel itérateur à partir d'un itérateur existant
Créez un nouvel itérateur basé sur un itérateur existant, en avançant de 3 positions. auto it1 = suivant(it, 3);  
Afficher les valeurs vectorielles à l'aide d'un itérateur
vecteur<int>::itérateur it ; for (it = myvector.begin(); it != myvector.end(); ++it) {   cout<<*il<<" ";  }
Parcours vectoriel
Pour parcourir le vecteur du dernier élément au premier, un itérateur inverse reverse_iterator est utilisé, il est obtenu par :
1) rbegin() -  ; renvoie un itérateur inverse pointant sur le dernier élément du vecteur, l'application de l'opération ++ conduit au passage à l'élément précédent ;
2) rend() -  retourne un itérateur inverse pointant sur l'élément précédent du vecteur, l'application de l'opération ++ conduit à la transition  au suivant. vecteur<int>::reverse_iterator it = myvector.rbegin();  // pointe vers le dernier élément vector<int>::reverse_iterator it = myvector.rend();    // pointe vers un élément,   // qui vient avant le premier,

Problem

On vous donne une suite d'entiers.  Écrivez un programme qui inverse un vecteur en utilisant reverse_iterator.

Entrée
Premier nombre donné N - le nombre d'éléments dans la séquence (1<= N <= 100). Ensuite, les nombres N sont écrits séparés par un espace.
 
Sortie
Sortir tous les éléments du vecteur résultant sur une seule ligne, en les séparant par des espaces.
 
Exemple
# Entrée Sortie
1 5
1 2 3 4 5
5 4 3 2 1