std::reverse_iterator< _Iterator > Class Template Reference

#include <stl_iterator.h>

Inheritance diagram for std::reverse_iterator< _Iterator >:

Inheritance graph
[legend]
Collaboration diagram for std::reverse_iterator< _Iterator >:

Collaboration graph
[legend]
List of all members.

Public Types

typedef iterator_traits< _Iterator
>::difference_type 
difference_type
 Distance between iterators is represented as this type.

typedef iterator_traits< _Iterator
>::reference 
reference
 This type represents a reference-to-value_type.

typedef iterator_traits< _Iterator
>::pointer 
pointer
 This type represents a pointer-to-value_type.


Public Methods

 reverse_iterator ()
 reverse_iterator (iterator_type __x)
 reverse_iterator (const reverse_iterator &__x)
template<typename _Iter>  reverse_iterator (const reverse_iterator< _Iter > &__x)
iterator_type base () const
reference operator * () const
pointer operator-> () const
reverse_iterator & operator++ ()
reverse_iterator operator++ (int)
reverse_iterator & operator-- ()
reverse_iterator operator-- (int)
reverse_iterator operator+ (difference_type __n) const
reverse_iterator & operator+= (difference_type __n)
reverse_iterator operator- (difference_type __n) const
reverse_iterator & operator-= (difference_type __n)
reference operator[] (difference_type __n) const

Detailed Description

template<typename _Iterator>
class std::reverse_iterator< _Iterator >

"Bidirectional and random access iterators have corresponding reverse %iterator adaptors that iterate through the data structure in the opposite direction. They have the same signatures as the corresponding iterators. The fundamental relation between a reverse %iterator and its corresponding %iterator i is established by the identity:
      &*(reverse_iterator(i)) == &*(i - 1)
  

This mapping is dictated by the fact that while there is always a pointer past the end of an array, there might not be a valid pointer before the beginning of an array." [24.4.1]/1,2

Reverse iterators can be tricky and surprising at first. Their semantics make sense, however, and the trickiness is a side effect of the requirement that the iterators must be safe.

Definition at line 90 of file stl_iterator.h.


Member Typedef Documentation

template<typename _Iterator>
typedef iterator_traits<_Iterator>::difference_type std::reverse_iterator< _Iterator >::difference_type
 

Distance between iterators is represented as this type.

Reimplemented from std::iterator< iterator_traits< _Iterator >::iterator_category, iterator_traits< _Iterator >::value_type, iterator_traits< _Iterator >::difference_type, iterator_traits< _Iterator >::pointer, iterator_traits< _Iterator >::reference > .

Definition at line 103 of file stl_iterator.h.

template<typename _Iterator>
typedef iterator_traits<_Iterator>::pointer std::reverse_iterator< _Iterator >::pointer
 

This type represents a pointer-to-value_type.

Reimplemented from std::iterator< iterator_traits< _Iterator >::iterator_category, iterator_traits< _Iterator >::value_type, iterator_traits< _Iterator >::difference_type, iterator_traits< _Iterator >::pointer, iterator_traits< _Iterator >::reference > .

Definition at line 105 of file stl_iterator.h.

template<typename _Iterator>
typedef iterator_traits<_Iterator>::reference std::reverse_iterator< _Iterator >::reference
 

This type represents a reference-to-value_type.

Reimplemented from std::iterator< iterator_traits< _Iterator >::iterator_category, iterator_traits< _Iterator >::value_type, iterator_traits< _Iterator >::difference_type, iterator_traits< _Iterator >::pointer, iterator_traits< _Iterator >::reference > .

Definition at line 104 of file stl_iterator.h.


Constructor & Destructor Documentation

template<typename _Iterator>
std::reverse_iterator< _Iterator >::reverse_iterator   [inline]
 

The default constructor gives an undefined state to this %iterator.

Definition at line 111 of file stl_iterator.h.

Referenced by std::reverse_iterator< _Iterator >::operator+() , and std::reverse_iterator< _Iterator >::operator-() .

template<typename _Iterator>
std::reverse_iterator< _Iterator >::reverse_iterator iterator_type    __x [inline, explicit]
 

This %iterator will move in the opposite direction that x does.

Definition at line 117 of file stl_iterator.h.

template<typename _Iterator>
std::reverse_iterator< _Iterator >::reverse_iterator const reverse_iterator< _Iterator > &    __x [inline]
 

The copy constructor is normal.

Definition at line 122 of file stl_iterator.h.

template<typename _Iterator>
template<typename _Iter>
std::reverse_iterator< _Iterator >::reverse_iterator const reverse_iterator< _Iter > &    __x [inline]
 

A reverse_iterator across other types can be copied in the normal fashion.

Definition at line 130 of file stl_iterator.h.

References std::reverse_iterator< _Iterator >::base() .


Member Function Documentation

template<typename _Iterator>
iterator_type std::reverse_iterator< _Iterator >::base   const [inline]
 

Returns:
current, the %iterator used for underlying work.

Definition at line 137 of file stl_iterator.h.

Referenced by std::operator+() , std::operator-() , std::operator==() , and std::reverse_iterator< _Iterator >::reverse_iterator() .

template<typename _Iterator>
reference std::reverse_iterator< _Iterator >::operator *   const [inline]
 

Returns:
TODO
Todo:
Doc me! See docs/doxygen/TODO and http://gcc.gnu.org/ml/libstdc++/2002-02/msg00003.html for more.

Definition at line 145 of file stl_iterator.h.

Referenced by std::reverse_iterator< _Iterator >::operator->() .

template<typename _Iterator>
reverse_iterator std::reverse_iterator< _Iterator >::operator+ difference_type    __n const [inline]
 

Returns:
TODO
Todo:
Doc me! See docs/doxygen/TODO and http://gcc.gnu.org/ml/libstdc++/2002-02/msg00003.html for more.

Definition at line 214 of file stl_iterator.h.

References std::reverse_iterator< _Iterator >::reverse_iterator() .

template<typename _Iterator>
reverse_iterator std::reverse_iterator< _Iterator >::operator++ int    [inline]
 

Returns:
TODO
Todo:
Doc me! See docs/doxygen/TODO and http://gcc.gnu.org/ml/libstdc++/2002-02/msg00003.html for more.

Definition at line 177 of file stl_iterator.h.

template<typename _Iterator>
reverse_iterator& std::reverse_iterator< _Iterator >::operator++   [inline]
 

Returns:
TODO
Todo:
Doc me! See docs/doxygen/TODO and http://gcc.gnu.org/ml/libstdc++/2002-02/msg00003.html for more.

Definition at line 165 of file stl_iterator.h.

template<typename _Iterator>
reverse_iterator& std::reverse_iterator< _Iterator >::operator+= difference_type    __n [inline]
 

Returns:
TODO
Todo:
Doc me! See docs/doxygen/TODO and http://gcc.gnu.org/ml/libstdc++/2002-02/msg00003.html for more.

Definition at line 223 of file stl_iterator.h.

template<typename _Iterator>
reverse_iterator std::reverse_iterator< _Iterator >::operator- difference_type    __n const [inline]
 

Returns:
TODO
Todo:
Doc me! See docs/doxygen/TODO and http://gcc.gnu.org/ml/libstdc++/2002-02/msg00003.html for more.

Definition at line 235 of file stl_iterator.h.

References std::reverse_iterator< _Iterator >::reverse_iterator() .

template<typename _Iterator>
reverse_iterator std::reverse_iterator< _Iterator >::operator-- int    [inline]
 

Returns:
TODO
Todo:
Doc me! See docs/doxygen/TODO and http://gcc.gnu.org/ml/libstdc++/2002-02/msg00003.html for more.

Definition at line 201 of file stl_iterator.h.

template<typename _Iterator>
reverse_iterator& std::reverse_iterator< _Iterator >::operator--   [inline]
 

Returns:
TODO
Todo:
Doc me! See docs/doxygen/TODO and http://gcc.gnu.org/ml/libstdc++/2002-02/msg00003.html for more.

Definition at line 190 of file stl_iterator.h.

template<typename _Iterator>
reverse_iterator& std::reverse_iterator< _Iterator >::operator-= difference_type    __n [inline]
 

Returns:
TODO
Todo:
Doc me! See docs/doxygen/TODO and http://gcc.gnu.org/ml/libstdc++/2002-02/msg00003.html for more.

Definition at line 244 of file stl_iterator.h.

template<typename _Iterator>
pointer std::reverse_iterator< _Iterator >::operator->   const [inline]
 

Returns:
TODO
Todo:
Doc me! See docs/doxygen/TODO and http://gcc.gnu.org/ml/libstdc++/2002-02/msg00003.html for more.

Definition at line 157 of file stl_iterator.h.

References std::reverse_iterator< _Iterator >::operator *() .

template<typename _Iterator>
reference std::reverse_iterator< _Iterator >::operator[] difference_type    __n const [inline]
 

Returns:
TODO
Todo:
Doc me! See docs/doxygen/TODO and http://gcc.gnu.org/ml/libstdc++/2002-02/msg00003.html for more.

Definition at line 256 of file stl_iterator.h.


The documentation for this class was generated from the following file:
Generated on Thu Nov 21 03:13:34 2002 for libstdc++-v3 Source by doxygen1.2.18-20021030