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