Random-access iterator category
Bidirectional iterators are iterators especially designed for having the same functionality as standard pointers. Pointers are random access iterators.
Random access iterators are the most complete iterators in terms of functionality. They have the following characteristics:
characteristic | valid expressions |
Can be default-constructed | X a;
X() |
Can be copied and copy-constructed | X b(a);
b = a; |
Accepts equality/inequality comparisons.
Equal iterators imply the same element is pointed | a == b
a != b |
Can be dereferenced (when not null) | *a
a->m |
Can be incremented and decremented (when not null) | ++a
--a
a++
a-- |
Supports arithmetic operators + and - between an iterator and an integer value | a + n
n + a |
Supports inequality comparisons (<, >, <= and >=) between iterators | a < b
a > b
a <= b
a >= b |
Supports compound assinment operations += and -= | a += n
a -= n |
Supports offset dereference operator ([]) | a[n] |
Where X is an iterator type, a and b are objects of this iterator type, and n is an integral type.
See also
|