C++ Library - <iterator>



It is a pointer-like object that can be incremented with ++, dereferenced with *, and compared against another iterator with !=


category properties valid expressions
all categories copy-constructible, copy-assignable and destructible

X b(a);

b = a;

It can be incremented



Random Access Bidirectional Forward Input It supports equality/inequality comparisons

a == b

a != b

It can be dereferenced as an rvalue




It can be dereferenced as an lvalue

(only for mutable iterator types)

*a = t

*a++ = t


X a;


Multi-pass: neither dereferencing nor incrementing affects dereferenceability { b = a; *a++; *b; }
It can be decremented




It supports arithmetic operators + and -

a + n

n + a

a - n

a - b

It supports inequality comparisons ( <, >, <= and >=) between iterators

a < b

a > b

a <= b

a >= b

It supports compound assignment operations += and -=

a += n

a -= n

It supports offset dereference operator ([]) a[n]


S.N. Functions & Description
1 advance

It advances the iterator it by n element positions.

2 distance

It returns distance between iterators.

3 begin

It is used to begin an iterator.

4 end

It is used to end an iterator.

5 prev

It is used to get iterator to previous element.

6 next

It is used to get iterator to next element.

Iterator generators

S.N. Iterator generators & Description
1 back_inserter

It constructs back insert iterator.

2 inserter

It constructs insert iterator

3 make_move_iterator

It construct move iterators.


S.N. Classes & Description
1 iterator

It iterators base class.

2 iterator_traits

It is an iterator traits.

Predefined iterators

S.N. Predefined iterators & Description
1 reverse_iterator

It is a reverse iterator.

2 move_iterator

It is a move iterator.

3 back_insert_iterator

It is a back insert iterator.

4 front_insert_iterator

It is a front insert iterator.

5 insert_iterator

It is used to insert an iterator.

6 istream_iterator

It is an input stream iterator.

7 ostream_iterator

It is an output stream iterator.

8 istreambuf_iterator

It is an input stream buffer iterator.

7 ostreambuf_iterator

It is an output stream buffer iterator.

Category tags

S.N. Category tags & Description
1 input_iterator_tag

Input iterator category.

2 output_iterator_tag

output iterator category.

3 forward_iterator_tag

Forward iterator category.

4 bidirectional_iterator_tag

Bidirectional iterator category.

5 random_access_iterator_tag

Random-access iterator category.