Biblioteca de iteradores de C ++ - iterator_traits

Descripción

Trata las propiedades que definen la clase de los iteradores.

Declaración

A continuación se muestra la declaración de 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*>;

Parámetros

T - Indica sobre tipo de elemento.

Valor devuelto

ninguna

Excepciones

Si x arroja de alguna manera al aplicar el operador unario &, esta función nunca arroja excepciones.

Complejidad del tiempo

constante para iteradores de acceso aleatorio.

Ejemplo

El siguiente ejemplo muestra el uso 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;
}

Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:

int* is a random-access iterator