Standard C++ Library Class Reference
This mapping is dictated by the fact that, while there is always a pointer past the end of a container, there might not be a
valid pointer before its beginning.
The following are true for reverse_bidirectional_iterators :
These iterators may be instantiated with the default constructor or by a single argument constructor that initializes
the new reverse_bidirectional_iterator with a bidirectional_iterator.
●
operator* returns a reference to the current value pointed to.●
operator++ advances the iterator to the previous item (--current) and returns a reference to *this.●
operator++(int) advances the iterator to the previous item (--current) and returns the old value of *this.●
operator-- advances the iterator to the following item (++current) and returns a reference to *this.●
operator--(int) Advances the iterator to the following item (++current) and returns the old value of *this.●
operator== This non-member operator returns true if the iterators x and y point to the same item.●
The following are true for reverse_iterators:
These iterators may be instantiated with the default constructor or by a single argument constructor which
initializes the new reverse_iterator with a random_access_iterator.
●
operator* returns a reference to the current value pointed to.●
operator++ advances the iterator to the previous item (--current) and returns a reference to *this.●
operator++(int) advances the iterator to the previous item (--current) and returns the old value of *this.●
operator-- advances the iterator to the following item (++current) and returns a reference to *this.●
operator--(int) advances the iterator to the following item (++current) and returns the old value of *this.●
operator== is a non-member operator returns true if the iterators x and y point to the same item.●
The remaining operators (<, +, - , +=, -=) are redefined to behave exactly as they would in a
random_access_iterator, except with the sense of direction reversed.
●
Complexity
All iterator operations are required to take at most amortized constant time.
Interface
template <class BidirectionalIterator,
class T,
class Reference = T&,
class Pointer = T*,
class Distance = ptrdiff_t>
class reverse_bidirectional_iterator
: public bidirectional_iterator<T, Distance> {
typedef reverse_bidirectional_iterator<BidirectionalIterator, T,
Reference,
Pointer, Distance> self;
friend bool operator== (const self&, const self&);
public:
reverse_bidirectional_iterator ();
explicit reverse_bidirectional_iterator
(BidirectionalIterator);
BidirectionalIterator base ();