Standard C++ Library Reference ISO/IEC (VERSION3)
random_access_iterator_tag
struct random_access_iterator_tag
 : public bidirectional_iterator_tag {
 };
The type is the same as iterator<Iter>::iterator_category when Iter describes an
object that can serve as a random-access iterator.
reverse_iterator
template<class RanIt>
 class reverse_iterator : public iterator<
 typename iterator_traits<RanIt>::iterator_category,
 typename iterator_traits<RanIt>::value_type,
 typename iterator_traits<RanIt>::difference_type,
 typename iterator_traits<RanIt>::pointer,
 typename iterator_traits<RanIt>::reference> {
 typedef typename iterator_traits<RanIt>::difference_type
 difference_type;
 typedef typename iterator_traits<RanIt>::pointer
 pointer;
 typedef typename iterator_traits<RanIt>::reference
 reference;
public:
 typedef RanIt iterator_type;
 reverse_iterator();
 explicit reverse_iterator(RanIt right);
 template<class Ty>
 reverse_iterator(const reverse_iterator<Ty>& right);
 RanIt base() const;
 reference operator*() const;
 pointer operator->() const;
 reverse_iterator& operator++();
 reverse_iterator operator++(int);
 reverse_iterator& operator--();
 reverse_iterator operator--();
 reverse_iterator& operator+=(difference_type off);
 reverse_iterator operator+(difference_type off) const;
 reverse_iterator& operator-=(difference_type off);
 reverse_iterator operator-(difference_type off) const;
 reference operator[](difference_type off) const;
protected:
 RanIt current;










