Boost C++ Libraries of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of Boost. Click here to view this page for the latest version.
Front Page / Iterators / Concepts / Bidirectional Iterator

Bidirectional Iterator


A Bidirectional Iterator is a Forward Iterator that provides a way to obtain an iterator to the previous element in a sequence.

Refinement of

Forward Iterator


Expression requirements

In addition to the requirements defined in Forward Iterator, the following requirements must be met.

Expression Type Complexity
next<i>::type Bidirectional Iterator Amortized constant time
prior<i>::type Bidirectional Iterator Amortized constant time
i::category Integral Constant, convertible to bidirectional_iterator_tag Constant time

Expression semantics

typedef prior<i>::type j;
Precondition:i is decrementable
Semantics:j is an iterator pointing to the previous element of the sequence
Postcondition:j is dereferenceable and incrementable


For any bidirectional iterators i and j the following invariants always hold:

See also

Iterators, Forward Iterator, Random Access Iterator, Bidirectional Sequence, prior