Bibliothèque d'itérateurs C ++ - iterator_traits

La description

Il caractérise la classe définissant les propriétés des itérateurs.

Déclaration

Voici la déclaration pour std :: iterator_traits.

C ++ 11

template <class Iterator> class iterator_traits;
template <class T> class iterator_traits<T*>;
template <class T> class iterator_traits<const T*>;

Paramètres

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

Valeur de retour

aucun

Exceptions

Si x lève en quelque sorte tout 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_traits.

#include <iostream>     
#include <iterator>     
#include <typeinfo>     

int main() {
   typedef std::iterator_traits<int*> traits;
   if (typeid(traits::iterator_category)==typeid(std::random_access_iterator_tag))
      std::cout << "int* is a random-access iterator";
   return 0;
}

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

int* is a random-access iterator