Biblioteca C ++ Iterator - iterator_traits

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