Description
A Random Access Iterator traverses a Sequence moving in either direction, permitting efficient arbitrary distance movements back and forward through the sequence.
Notation
- i, j
Random Access Iterators
- I, J
Random Access Iterator types
- M
An MPL integral constant
- N
An integral constant
Refinement of
Expression requirements
In addition to the requirements defined in Bidirectional Iterator, the following expressions must be valid:
|
Expression |
Return type |
Runtime Complexity |
|---|---|---|
|
next(i) |
Constant |
|
|
prior(i) |
Constant |
|
|
advance_c<N>(i) |
Constant |
|
|
advance<M>(i) |
Constant |
Meta Expressions
|
Expression |
Compile Time Complexity |
|---|---|
|
result_of::advance_c<I, N>::type |
Amortized constant time |
|
result_of::advance<I, M>::type |
Amortized constant time |
|
result_of::distance<I ,J>::type |
Amortized constant time |
Models
- vector iterator
- std::pair iterator
- boost::array iterator
- iterator_range iterator (where adapted sequence is a Random Access Sequence)
- transform_view iterator (where adapted sequence is a Random Access Sequence)
- reverse_view iterator (where adapted sequence is a Random Access Sequence)
