reverse_bidirectional_iterator


Permits a bidirectional iterator to be used as a reverse iterator.

Library

Standards<ToolKit>

Declaration


#include <iterator>

template
  <
  class BidirectionalIterator,
  class T,
  class Reference,
  class Distance
  >
class reverse_bidirectional_iterator :
  public bidirectional_iterator< T, Distance >
  

Interface

Constructor
reverse_bidirectional_iterator()
Constructs a reverse bidirectional iterator to serve as a past-the-end marker.
Constructor
explicit reverse_bidirectional_iterator( BidirectionalIterator iterator )
Constructs a reverse bidirectional iterator associated with iterator .
base
BidirectionalIterator base()
Returns a copy of the reverse bidirectional iterator's associated iterator.
*
Reference operator*()
Returns a reference to the item referenced by the reverse bidirectional iterator's associated iterator.
++
reverse_bidirectional_iterator
< BidirectionalIterator, T, Reference, Distance >& operator++()
Retreats the reverse bidirectional iterator's associated iterator by one and returns a reference to the new value.
++
reverse_bidirectional_iterator
< BidirectionalIterator, T, Reference, Distance > operator++( int )
Retreats the reverse bidirectional iterator's associated iterator by one and returns a copy of the previous value.
--
reverse_bidirectional_iterator
< BidirectionalIterator, T, Reference, Distance >& operator--()
Advances the reverse bidirectional iterator's associated iterator and returns a reference to the new value.
--
reverse_bidirectional_iterator< BidirectionalIterator, T, Reference, Distance > operator--( int )
Advances the reverse bidirectional iterator's associated iterator and returns a copy of the previous value.
==
bool operator==( const reverse_bidirectional_iterator< BidirectionalIterator,T,Reference, Distance >& iterator ) const
Returns true if the reverse bidirectional iterator's associated iterator is in the same state as iterator 's.
!=
bool operator!=( const reverse_bidirectional_iterator< BidirectionalIterator,T,Reference, Distance >& iterator ) const
Returns true if the reverse bidirectional iterator's associated iterator is not in the same state as iterator 's.
Example <ospace/osstd/examples/revbit1.cpp>
#include <iostream>
#include <iterator>
#include <list>

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

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

  reverse_bidirectional_iterator
    <
    list< int >::iterator,
    int,
    list< int >::reference,
    int*,
    list< int >::difference_type
    > r( l.end() );

  while ( r != l.begin() )
    cout << *r++ << "\n";
  }

3
2
5
1
Example <ospace/osstd/examples/revbit2.cpp>
#include <iostream>
#include <list>

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

void
main()
  {
  list< int > l( array, array + 4 );

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

3
2
5
1

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