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