Clique sobre os tópicos listados abaixo para navegar até o conteúdo desejado.

  1. Iterador random access
  2. Declarar um iterador bidirecional
  3. Uso dos operadores
  4. métodos

O tipo de iterador Random Access é um tipo de iterador de acesso randômico para leitura e escrita de valores contidos em estrutura de dado dinâmica , contêiner ou coleção.. Esse iterador é utiizado por Array, Vector, Deque e String.

Tab. 1: Abstração de um iterador
begin referência 1 referência 2 (...) referência N end
elemento 1 elemento 2 elemento 3 (...) elemento N -
Características
  1. Poder ser incrementado
  2. Poder ser decrementado
  3. Utilizado para leitura de dados
  4. Utilizado para escrita de dados
  5. Aceita mais operadores relacionais

Para utilizarmos o tipo de dado iterator, precisamos incluir a biblioteca chamada iterator.

Sintaxe A
#include <iterator>

A declaração de um objeto do tipo iterator random é feita utilizando o tipo iterador acessado com o operador (::) proveniente da coleção desejada.

Sintaxe
tipo_dado<tipo_do_elemento>::iterador nome_iterador;
Onde
tipo_dado : tipo de dado que utiliza o iterador randômico.
tipo_do_elemento: tipo de dado do elemento

No exemplo abaixo, vamos utilizar o tipo de dado list para demostração do iterador random. Esse tipo de dados pode ser visto com mais detalhes em C++ EDD: Vector.

Exemplo 1
#include <iostream>
#include <vector>

using namespace std;

int main ()
{
  vector<int> lst = {1,2,3};
  vector<int>::iterator it;
    
  return 0;
}
Saída
-
Exemplo 1.1
#include <iostream>
#include <vector>

using namespace std;

int main()  
{  
    vector<int> vec_int = {1,2,3};
    vector<int>::iterator it = vec_int.begin();
    advance(it,1);
    cout << *it <<endl;
}
}
Saída
2

Podemos realizar algumas operações aritméticas e relacionais em um iterador do tipo random de acordo com a tabela abaixo:

Tab. 2: Operadores
Operador Exemplo
= iterador1 = iterador2
== iterador1 == iterador2
!= iterador1 != iterador2
++ iterador1++
-- iterador1--
* *iterador1
> iterador1 > iterador2
< iterador1 < iterador2
>= iterador1 >= iterador2
<= iterador1 <= iterador2

No exemplo abaixo, utilizamos o comando for, visto em C++: Comandos de Repetição, em que usamos seus blocos de iniciação, verificação e incremento para declarar expressões usando os operadores vistos acima:

Exemplo 2
#include <iostream>
#include <vector>

using namespace std;

int main ()
{
  vector<int> lst = {1,2,3};
  vector<int>::iterator it;
  
  it = lst.end();
  it--;
  
  if ( it >= lst.begin() && it < lst.end())
    cout<< *it;
    
  return 0;
}
            
Saída
3

Em caso de dúvidas, os operadores acima foram vistos em C++: Operadores e C++: Ponteiros sendo a leitura recomendada.

  1. 01/08/2025 - revisão 4 - Ajustes pontuais, sintaxes e target de links internos
  2. 27/09/2024 - revisão 3 - Adição: links internos em 'Operadores'; Ajustes pontuais
  3. 30/08/2024 - revisão 2 - Correção em links de objetivos
  4. 09/02/2024 - revisão 1 - correção em navegação, exemplo 1.1 e erros gramaticais
  5. 30/06/2023 - versão inicial