![]() |
Home | Libraries | People | FAQ | More |
A Forward Iterator traverses a Sequence allowing movement in only one direction through it's elements, one element at a time.
Notation
Forward Iterators
Forward Iterator types
An MPL integral constant
An integral constant
A type models Forward Iterator if, in addition to being CopyConstructable, the following expressions are valid:
|
Expression |
Return type |
Runtime Complexity |
|---|---|---|
|
next(i) |
Constant |
|
|
i == j |
Convertible to bool |
Constant |
|
i != j |
Convertible to bool |
Constant |
|
advance_c<N>(i) |
Constant |
|
|
advance<M>(i) |
Constant |
|
|
distance(i, j) |
result_of::distance<I, J>::type |
Constant |
|
deref(i) |
result_of::deref<I>::type |
Constant |
|
*i |
result_of::deref<I>::type |
Constant |
|
Expression |
Compile Time Complexity |
|---|---|
|
result_of::next<I>::type |
Amortized constant time |
|
result_of::equal_to<I, J>::type |
Amortized constant time |
|
result_of::advance_c<I, N>::type |
Linear |
|
result_of::advance<I ,M>::type |
Linear |
|
result_of::distance<I ,J>::type |
Linear |
|
result_of::deref<I>::type |
Amortized constant time |
|
result_of::value_of<I>::type |
Amortized constant time |
|
Expression |
Semantics |
|---|---|
|
next(i) |
An iterator to the element following i |
|
i == j |
Iterator equality comparison |
|
i != j |
Iterator inequality comparison |
|
advance_c<N>(i) |
An iterator n elements after i in the sequence |
|
advance<M>(i) |
Equivalent to advance_c<M::value>(i) |
|
distance(i, j) |
The number of elements between i and j |
|
deref(i) |
The element at positioni |
|
*i |
Equivalent to deref(i) |
The following invariants always hold: