Bibliothèque d'itérateur C ++ - <iterator>

La description

C'est une classe de base itérateur.

Déclaration

Voici la déclaration de std :: iterator.

C ++ 11

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

Paramètres

  • T - Il indique le type d'élément.

  • Distance - Il représente la différence entre deux itérateurs.

  • Pointer - Il représente un pointeur vers un élément pointé par l'itérateur.

  • Reference - Il représente une référence à un élément pointé par l'itérateur.

Valeur de retour

aucun

Des exceptions

Si x lève d'une manière ou d'une autre en lui appliquant l'opérateur unaire &, cette fonction ne lève jamais d'exceptions.

Complexité temporelle

constante pour les itérateurs à accès aléatoire.

Exemple

L'exemple suivant montre l'utilisation 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;
}

Compilons et exécutons le programme ci-dessus, cela produira le résultat suivant -

1 2 3 4 5