BidirectionalIterator
C++ concepts: BidirectionalIterator
A BidirectionalIterator
is a ForwardIterator
that can be moved in both directions (i.e. incremented and decremented).
Requirements
The type It
satisfies BidirectionalIterator
if.
- The type
It
satisfiesForwardIterator
And, given.
-
a
andb
, iterators of typeIt
-
reference,
the type denoted bystd::iterator_traits<It>::reference
The following expressions must be valid and have their specified effects.
Expression | Return | Equivalent expression | Notes |
---|---|---|---|
--a | It& | Preconditions:
Postconditions:
|
|
a-- | convertible to const It&
|
It temp = a; --a; return temp; | |
*a-- | reference |
A mutable BidirectionalIterator
is a BidirectionalIterator
that additionally satisfies the OutputIterator
requirements.
Notes
The begin iterator is not decrementable and the behavior is undefined if --container.begin()
is evaluated.
A bidirectional iterator does not have to be dereferenceable to be decrementable (in particular, the end iterator is not dereferenceable but is decrementable).
See also
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/cpp/concept/BidirectionalIterator