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 ();