Freigeben über


reverse_iterator::base

Stellt den zugrunde liegenden Iterator aus reverse_iterator wieder her.

RandomIterator base( ) const;

Rückgabewert

Der Iterator, der reverse_iterator zugrunde liegt.

Hinweise

Die Identität, die alle umgekehrten Iteratoren auf die zugrunde liegenden, Iteratoren verknüpft ist:

&* (reverse_iterator (i) == &) * ( i - 1).

In der Praxis bedeutet dies, dass das in der umgekehrten Reihenfolge reverse_iterator die Position des Elements eines über (auf der rechten Seite) das Element hinaus verweist, dass der Iterator in der ursprünglichen Sequenz verwiesen hat. Somit, wenn ein Iterator das Element in der Sequenz 6 adressierte (2, 4, 6, 8), dann reverse_iterator, behandelt das Element 4 in der umgekehrten Reihenfolge (8, 6, 4, 2).

Beispiel

// reverse_iterator_base.cpp
// compile with: /EHsc
#include <iterator>
#include <algorithm>
#include <vector>
#include <iostream>

int main( )
{
   using namespace std;
   int i;

   vector<int> vec;
   for ( i = 1 ; i < 6 ; ++i )  
   {
      vec.push_back ( 2 * i );
   }
   
   vector <int>::iterator vIter;
   cout << "The vector vec is: ( ";
   for ( vIter = vec.begin ( ) ; vIter != vec.end ( ); vIter++ )
      cout << *vIter << " ";
   cout << ")." << endl;

   vector <int>::reverse_iterator rvIter;
   cout << "The vector vec reversed is: ( ";
   for ( rvIter = vec.rbegin( ) ; rvIter != vec.rend( ); rvIter++)
      cout << *rvIter << " ";
   cout << ")." << endl;

   vector <int>::iterator pos, bpos;
   pos = find ( vec.begin ( ), vec.end ( ), 6 );
   cout << "The iterator pos points to: " << *pos << "." << endl;

   typedef reverse_iterator<vector<int>::iterator>::iterator_type it_vec_int_type;

   reverse_iterator<it_vec_int_type> rpos ( pos );
   cout << "The reverse_iterator rpos points to: " << *rpos 
        << "." << endl;

   bpos = rpos.base ( );
   cout << "The iterator underlying rpos is bpos & it points to: " 
        << *bpos << "." << endl;
}

Ausgabe

The vector vec is: ( 2 4 6 8 10 ).
The vector vec reversed is: ( 10 8 6 4 2 ).
The iterator pos points to: 6.
The reverse_iterator rpos points to: 4.
The iterator underlying rpos is bpos & it points to: 6.

Anforderungen

Header: <Iterator>

Namespace: std

Siehe auch

Referenz

reverse_iterator-Klasse

Standardvorlagenbibliothek