Libreria Iterator C ++ - <iterator>
Descrizione
È una classe base iteratore.
Dichiarazione
Di seguito è riportata la dichiarazione per std :: iterator.
C ++ 11
template <class Category,
class T,
class Distance = ptrdiff_t,
class Pointer = T*,
class Reference = T&>
class iterator;
Parametri
T - Indica il tipo di elemento.
Distance - Rappresenta la differenza tra due iteratori.
Pointer - Rappresenta un puntatore a un elemento puntato dall'iteratore.
Reference - Rappresenta un riferimento a un elemento puntato dall'iteratore.
Valore di ritorno
nessuna
Eccezioni
Se x in qualche modo genera mentre applica l'operatore unario & ad esso, questa funzione non genera mai eccezioni.
Complessità temporale
costante per iteratori ad accesso casuale.
Esempio
L'esempio seguente mostra l'utilizzo di 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;
}
Compiliamo ed eseguiamo il programma sopra, questo produrrà il seguente risultato:
1 2 3 4 5