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;