std::Random Access Iterator

<iterator>
Random-access iterator category
RandomAccess

Random access 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.

There is not a single type of random access iterator: Each container defines its own specific iterator type able to iterate through it and access its elements. But all random access iterators support -at least- the following operations:



characteristicvalid expressions
Can be default-constructedX a;
X()
Can be copied and copy-constructedX 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, or subtracting an iterator from anothera + n
n + a
a - n
a - b
Supports inequality comparisons (<, >, <= and >=) between iteratorsa < b
a > b
a <= b
a >= b
Supports compound assignment 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