Descrição
Ele apresenta propriedades de definição de classe dos iteradores.
Declaração
A seguir está a declaração para 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 o tipo de elemento.
Valor de retorno
Nenhum
Exceções
Se x de alguma forma lançar enquanto aplica o operador unário & a ele, esta função nunca lança exceções.
Complexidade de tempo
constante para iteradores de acesso aleatório.
Exemplo
O exemplo a seguir mostra o 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;
}
Vamos compilar e executar o programa acima, isso produzirá o seguinte resultado -
int* is a random-access iterator