Problem

2/8

Iterador em vetor

Theory Click to read/hide

Iteradores
Uma forma de iterar sobre elementos em contêineres (estruturas de dados) é o iterador (iterador ), que vêm em vários tipos.
 
Iterator - estrutura de dados que « indica» ; em algum elemento de contêiner e (para alguns contêineres) pode navegar para o elemento anterior/próximo.

O vetor usa o mais poderoso - iterador de acesso aleatório(Iterador de acesso aleatório).  Um iterador de acesso aleatório pode acessar um elemento arbitrário do vetor além do movimento sequencial.

Os benefícios dos iteradores
1)  Ao excluir elementos e iterar sobre elementos usando índices ([]), precisamos acompanhar o número de elementos restantes o tempo todo para não ultrapassar o vetor e, usando um iterador, você pode usar end()< /code> indicando o final do vetor.
2) Usando um iterador, você pode facilmente remover e inserir dinamicamente elementos em um vetor. 
 
Declaração do iterador
1) Declarar um iterador para um vetor inteiro e apontá-lo para o primeiro elemento no vetor. vetor <int> meuvetor = { 1, 2, 3, 4, 5 }; vetor <int>::iterator it = myvector.begin();
2) Declarar um iterador para um vetor inteiro e apontá-lo para o elemento após o último no vetor. vetor <int> meuvetor = { 1, 2, 3, 4, 5 }; vetor <int>::iterator it = myvector.end(); // aponta para o elemento após o último, vetor <int>::iterator it1 = myvector.end() - 1 ; // apontando para o último elemento.  
Obtendo e exibindo um valor
Obtendo e exibindo o elemento apontado pelo iterador. cout << *isso;  
Mover a posição do iterador
Mova a posição do iterador 3 posições para frente. avanço(it, 3);  
Criando um novo iterador a partir de um existente
Crie um novo iterador com base em um existente, avançando 3 posições. auto it1 = next(it, 3);  
Exibindo valores vetoriais usando um iterador
vector<int>::iterador; for (it = myvector.begin(); it != myvector.end(); ++it) {   cout<<*it<<" ";  }
Travessia do vetor
Para percorrer o vetor do último elemento ao primeiro, é utilizado um iterador reverso reverse_iterator, obtido por:
1) rbegin() -  retorna um iterador reverso apontando para o último elemento do vetor, a aplicação da operação ++ leva à transição para o elemento anterior;
2) rend() -  retorna um iterador reverso apontando para o elemento anterior do vetor, a aplicação da operação ++ leva à transição  para o próximo. vector<int>::reverse_iterator it = myvector.rbegin();  // aponta para o último elemento vector<int>::reverse_iterator it = myvector.rend();    // aponta para um elemento,   // que vem antes do primeiro,

Problem

Você recebe uma sequência de números inteiros.  Escreva um programa que inverta um vetor usando reverse_iterator.

Entrada
Primeiro dado número N - o número de elementos na sequência (1<= N <= 100). Em seguida, N números são escritos separados por um espaço.
 
Saída
Deixe todos os elementos do vetor resultante em uma linha, separando-os com espaços.
 
Exemplo
# Entrada Saída
1 5
1 2 3 4 5
5 4 3 2 1