Library: Iterators
Header
The header <iterator> represents the Iterators library of the Standard C++ Library. It defines:
the class template iterator_traits and two partial specializations of iterator_traits on pointers and const pointers
the classes input_iterator_tag, output_iterator_tag, forward_iterator_tag, bidirectional_iterator_tag and random_access_iterator_tag
the class templates reverse_iterator, back_insert_iterator, front_insert_iterator, insert_iterator, istream_iterator, ostream_isterator, istreambuf_iterator, and ostreambuf_iterator
the helper function templates advance(), distance(), back_inserter(), front_inserter(), inserter()
a set of relational operators that C++ programs may use to perform equality and inequality tests on specializations of reverse_iterator
the equality and inequality operators specialized for istream_iterator and istreambuf_iterator
namespace std {
template<class Iterator> struct iterator_traits;
template<class T> struct iterator_traits<T*>;
template<class T> struct iterator_traits<const T*>;
template<class Category, class T,
class Distance = ptrdiff_t,
class Pointer = T*, class Reference = T&>
struct iterator;
struct input_iterator_tag {};
struct output_iterator_tag {};
struct forward_iterator_tag: input_iterator_tag {};
struct bidirectional_iterator_tag : forward_iterator_tag {};
struct random_access_iterator_tag :
bidirectional_iterator_tag {};
template <class InputIterator, class Distance>
void advance(InputIterator& i, Distance n);
template <class InputIterator>
typename iterator_traits<InputIterator>::difference_type
distance(InputIterator start, InputIterator finish);
template <class Iterator>
class reverse_iterator;
template <class Iterator>
bool operator==(const reverse_iterator<Iterator>&,
const reverse_iterator<Iterator>&);
template <class Iterator>
bool operator<(const reverse_iterator<Iterator>&,
const reverse_iterator<Iterator>&);
template <class Iterator>
bool operator!=(const reverse_iterator<Iterator>&,
const reverse_iterator<Iterator>&);
template <class Iterator>
bool operator>(const reverse_iterator<Iterator>&,
const reverse_iterator<Iterator>&);
template <class Iterator>
bool operator>=(const reverse_iterator<Iterator>&,
const reverse_iterator<Iterator>&);
template <class Iterator>
bool operator<=(const reverse_iterator<Iterator>&,
const reverse_iterator<Iterator>&);
template <class Iterator>
typename reverse_iterator<Iterator>::difference_type
operator-(const reverse_iterator<Iterator>&,
const reverse_iterator<Iterator>&);
template <class Iterator>
reverse_iterator<Iterator>
operator+(typename
reverse_iterator<Iterator>::difference_type,
const reverse_iterator<Iterator>&);
template <class Container> class back_insert_iterator;
template <class Container>
back_insert_iterator<Container> back_inserter(Container&);
template <class Container> class front_insert_iterator;
template <class Container>
front_insert_iterator<Container> front_inserter(Container&);
template <class Container> class insert_iterator;
template <class Container, class Iterator>
insert_iterator<Container> inserter(Container&, Iterator);
template <class T, class charT = char,
class traits = char_traits<charT>,
class Distance = ptrdiff_t>
class istream_iterator;
template <class T, class charT, class traits,
class Distance>
bool operator==(const istream_iterator<T, charT, traits,
Distance>&, const istream_iterator<T, charT,
traits, Distance>&);
template <class T, class charT, class traits,
class Distance>
bool operator!=(const istream_iterator<T, charT, traits,
Distance>&, const istream_iterator<T,
charT, traits, Distance>&);
template <class T, class charT = char,
class traits = char_traits<charT> >
class ostream_iterator;
template<class charT, class traits = char_traits<charT> >
class istreambuf_iterator;
template <class charT, class traits>
bool operator==(const istreambuf_iterator<charT, traits>&,
const istreambuf_iterator<charT, traits>&);
template <class charT, class traits>
bool operator!=(const istreambuf_iterator<charT, traits>&,
const istreambuf_iterator<charT, traits>&);
template <class charT, class traits = char_traits<charT> >
class ostreambuf_iterator;
}
iterator_traits, iterator, advance(), distance(), reverse_iterator, back_insert_iterator, back_inserter(), front_insert_iterator, front_inserter(), insert_iterator, inserter(), istream_iterator, ostream_iterator, istreambuf_iterator, ostreambuf_iterator, Bidirectional Iterators, Input Iterators, Insert Iterators, Iterators, Output Iterators, Random Access Iterators, Stream Iterators
ISO/IEC 14882:1998 -- International Standard for Information Systems --Programming Language C++, Section 24