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