C++ Iterator Library - iterator_traits



Description

It traits class defining properties of iterators.

Declaration

Following is the declaration for 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*>;

Parameters

T − It indicates about type of element.

Return value

none

Exceptions

If x somehow throws while applying the unary operator& to it, this function never throws exceptions.

Time complexity

constant for random-access iterators.

Example

The following example shows the usage of 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;
}

Let us compile and run the above program, this will produce the following result −

int* is a random-access iterator 
iterator.htm
Advertisements