|  | Home | Libraries | People | FAQ | More | 
A Bidirectional Iterator traverses a Sequence allowing movement in either direction one element at a time.
Notation
iA Bidirectional Iterator
IA Bidirectional Iterator type
MAn MPL integral constant
NAn integral constant
In addition to the requirements defined in Forward Iterator, the following expressions must be valid:
| Expression | Return type | Runtime Complexity | 
|---|---|---|
| 
                     | Constant | |
| 
                     | Constant | |
| 
                     | Constant | |
| 
                     | Constant | 
| Expression | Compile Time Complexity | 
|---|---|
| 
                     | Amortized constant time | 
The semantics of an expression are defined only where they differ from, or are not defined in Forward Iterator
| Expression | Semantics | 
|---|---|
| 
                     | 
                    An iterator to the element preceding  | 
In addition to the invariants of Forward Iterator, the following invariants always hold:
std::pair
              iterator
            boost::array
              iterator
            vector
              iterator
            map
              iterator
            single_view
              iterator
            iterator_range
              (where adapted sequence is a Bidirectional
              Sequence)
            transform_view
              (where adapted sequence is a Bidirectional
              Sequence)
            reverse_view