reverse_iterator


An iterator that reverses the polarity of an existing random access iterator.

Library

Standards<ToolKit>

Declaration


#include <iterator>

template
  <
  class RandomAccessIterator,
  class T,
  class Reference,
  class Distance
  >
class stl_reverse_iterator : public random_access_iterator< T, Distance >

Interface

Constructor
reverse_iterator()
Constructs a reverse iterator to serve as a past-the-end value.
Constructor
explicit reverse_iterator( RandomAccessIterator iterator )
Constructs a reverse iterator associated with iterator .
base
RandomAccessIterator base()
Returns a copy of the reverse iterator's associated iterator.
*
Reference operator*()
Returns a reference to the item referenced by the reverse iterator's associated iterator.
++
reverse_iterator< RandomAccessIterator, T, Reference, Distance >& operator++()
Retreats the reverse iterator's associated iterator by one and returns a reference to the iterator.
++
reverse_iterator< RandomAccessIterator, T, Reference, Distance > operator++( int )
Retreats the reverse iterator's associated iterator by one and returns a copy of the old value.
--
reverse_iterator< RandomAccessIterator, T, Reference, Distance >& operator--()
Advances the reverse iterator's associated iterator and returns a reference to the reverse iterator.
--
reverse_iterator< RandomAccessIterator, T, Reference, Distance > operator--( int )
Advances the reverse iterator's associated iterator and returns a copy of the old value.
+
reverse_iterator< RandomAccessIterator, T, Reference, Distance > operator+( Distance n ) const
Returns a copy of the reverse iterator's associated iterator retreated by n positions.
+=
reverse_iterator< RandomAccessIterator, T, Reference, Distance >& operator+=( Distance n )
Retreats the reverse iterator's associated iterator by n positions and returns a reference to the iterator.
-
reverse_iterator< RandomAccessIterator, T, Reference, Distance > operator-( Distance n ) const
Returns a copy of the reverse iterator's associated iterator advanced by n positions.
-=
reverse_iterator< RandomAccessIterator, T, Reference, Distance >& operator-=( Distance n )
Advances the reverse iterator's associated iterator by n positions and returns a reference to the reverse iterator.
[]
Reference operator[]( Distance n )
Returns a reference to the item that is n positions behind the reverse iterator's associated iterator.
==
bool operator==( const reverse_iterator< RandomAccessIterator,T,Reference,Distance >& x ) const
Returns true if the reverse iterator's associated iterator is in the same state as the associated iterator of x .
!=
bool operator!=( const reverse_iterator< RandomAccessIterator,T,Reference,Distance >& x )
const
Returns true if the reverse iterator's associated iterator is not in the same state as the associated iterator of x .
<
bool operator<( const reverse_iterator< RandomAccessIterator,T,Reference,Distance >& x )
const
Returns true if the reverse iterator's associated iterator is greater than the associated iterator of x .
-
Distance operator-( const reverse_iterator< RandomAccessIterator,T,Reference,Distance >& x )
const
Returns the distance between the reverse iterator's associated iterator and the associated iterator of x .

Non-Member Functions

+
reverse_iterator< RandomAccessIterator,
T, Reference, Distance > operator+ ( Distance
n , const reverse_iterator< RandomAccessIterator, T, Reference, Distance >& x )
Returns a reverse iterator with an associated iterator that is n positions behind x .
Example <ospace/osstd/examples/reviter1.cpp>
#include <iostream>
#include <iterator>
#include <vector>

int array[] = { 1, 5, 2, 3 };

void
main()
  {
  vector< int > v( array, array + 4 );

  stl_reverse_iterator
    <
    vector< int >::iterator, int,
    vector< int >::reference, int*,
    vector< int >::difference_type
    > r( v.end() );

  while ( r != v.begin() )
    cout << *r++ << "\n";
  }
3
2
5
1
Example <ospace/osstd/examples/reviter2.cpp>
#include <iostream>
#include <vector>

int array[] = { 1, 5, 2, 3 };

void
main()
  {
  vector< int > v( array, array + 4 );

  vector< int >::reverse_iterator r;
  for ( r = v.rbegin(); r != v.rend(); ++r )
    cout << *r << "\n";
  }

3
2
5
1

Copyright©1994-2026 Recursion Software LLC
All Rights Reserved - For use by licensed users only.