Biblioteca do Iterador C ++ - <iterador>

Descrição

É uma classe base de iterador.

Declaração

A seguir está a declaração para std :: iterator.

C ++ 11

template <class Category,              
          class T,                     
          class Distance = ptrdiff_t,  
          class Pointer = T*,          
          class Reference = T&> 
		  class iterator;

Parâmetros

  • T - Indica sobre o tipo de elemento.

  • Distance - Representa a diferença entre dois iteradores.

  • Pointer - Representa um ponteiro para um elemento apontado pelo iterador.

  • Reference - Representa uma referência a um elemento apontado pelo iterador.

Valor de retorno

Nenhum

Exceções

Se x de alguma forma lançar enquanto aplica o operador unário & a ele, esta função nunca lança exceções.

Complexidade de tempo

constante para iteradores de acesso aleatório.

Exemplo

O exemplo a seguir mostra o uso de std :: iterator.

#include <iostream>     
#include <iterator>     

class MyIterator : public std::iterator<std::input_iterator_tag, int> {
   int* p;
public:
   MyIterator(int* x) :p(x) {}
   MyIterator(const MyIterator& mit) : p(mit.p) {}
   MyIterator& operator++() {++p;return *this;}
   MyIterator operator++(int) {MyIterator tmp(*this); operator++(); return tmp;}
   bool operator==(const MyIterator& rhs) {return p==rhs.p;}
   bool operator!=(const MyIterator& rhs) {return p!=rhs.p;}
   int& operator*() {return *p;}
};

int main () {
   int numbers[] = {1,2,3,4,5};
   MyIterator from(numbers);
   MyIterator until(numbers+5);
   for (MyIterator it = from; it!=until; it++)
      std::cout << *it << ' ';
   std::cout << '\n';

  return 0;
}

Vamos compilar e executar o programa acima, isso produzirá o seguinte resultado -

1 2 3 4 5