Problem

2/8

Iterador en vector

Theory Click to read/hide

Iteradores
Una forma de iterar sobre elementos en contenedores (estructuras de datos) es el iterador (iterator ), que vienen en varios tipos.
 
Iterador - estructura de datos que « indica» ; en algún elemento contenedor y (para algunos contenedores) puede navegar al elemento anterior/siguiente.

El vector utiliza el más poderoso - iterador de acceso aleatorio(Iterador de acceso aleatorio).  Un iterador de acceso aleatorio puede acceder a un elemento arbitrario del vector además del movimiento secuencial.

Los beneficios de los iteradores
1) Al eliminar elementos e iterar sobre elementos usando índices ([]), debemos realizar un seguimiento de la cantidad de elementos restantes todo el tiempo para no ir más allá del vector, y al usar un iterador, usted puede usar end()< /code> indicando el final del vector.
2) Con un iterador, puede eliminar e insertar fácilmente elementos de forma dinámica en un vector. 
 
Declaración de iterador
1) Declarar un iterador para un vector entero y apuntarlo al primer elemento en el vector. vector <int> mivector = { 1, 2, 3, 4, 5 }; vector <int>::iterator it = myvector.begin();
2) Declarar un iterador para un vector entero y apuntarlo al elemento después del último en el vector. vector <int> mivector = { 1, 2, 3, 4, 5 }; vector <int>::iterator it = myvector.end(); // apunta al elemento después del último, vector <int>::iterator it1 = myvector.end() - 1 ; // apuntando al último elemento.  
Obtener y mostrar un valor
Obtener y mostrar el elemento señalado por el iterador. cout << *eso;  
Mover la posición del iterador
Mueva la posición del iterador 3 posiciones hacia adelante. avanzar(it, 3);  
Crear un nuevo iterador a partir de uno existente
Cree un nuevo iterador basado en uno existente, avanzando 3 posiciones. automático it1 = siguiente(it, 3);  
Mostrar valores vectoriales usando un iterador
vector<int>::iterador it; for (it = myvector.begin(); it != myvector.end(); ++it) {   cout<<*it<<" ";  }
Recorrido vectorial
Para recorrer el vector desde el último elemento hasta el primero, se utiliza un iterador inverso reverse_iterator, se obtiene mediante:
1) rbegin() -  devuelve un iterador inverso que apunta al último elemento del vector, la aplicación de la operación ++ conduce a la transición al elemento anterior;
2) rend() -  devuelve un iterador inverso que apunta al elemento anterior del vector, la aplicación de la operación ++ conduce a la transición  al siguiente vector<int>::reverse_iterator it = myvector.rbegin();  // apunta al último elemento vector<int>::reverse_iterator it = myvector.rend();    // apunta a un elemento,   // que viene antes del primero,

Problem

Se te da una secuencia de números enteros.  Escriba un programa que invierta un vector usando reverse_iterator.

Entrada
Primer número dado N - el número de elementos en la secuencia (1<= N <= 100). Luego se escriben N números separados por un espacio.
 
Salida
Represente todos los elementos del vector resultante en una línea, separándolos con espacios.
 
Ejemplo
# Entrada Salida
1 5
1 2 3 4 5
5 4 3 2 1
1
#include <iostream>            
2
#include <vector>            
3
using namespace std;            
4
int main()            
5
{            
6
    int n;            
7
    vector<int> myvector;                
8
    cin >> n;            
9
    for(int i=0;i<n;i++)            
10
    {            
11
        int a;            
12
        cin >> a;            
13
        myvector.push_back(a);            
14
    }            
15
    vector<int>::reverse_iterator it;            
16
17
    {            
18
        cout << *it << " ";            
19
    }            
20
 }            

     

Program check result

To check the solution of the problem, you need to register or log in!