Compartir a través de


reverse_iterator::base

Recupera el iterador subyacente de la reverse_iterator.

RandomIterator base( ) const;

Valor devuelto

el iterador que es la base de reverse_iterator.

Comentarios

La identidad que se relaciona todos los iteradores inversos con los iteradores subyacentes es:

&* == de &* (reverse_iterator(i)) (i – 1).

En la práctica, esto significa que en la secuencia invertida que reverse_iterator hará referencia al elemento una posición más allá (a la derecha de) del elemento al que el iterador había denominado en la secuencia original.Así pues un iterador dirigió el elemento 6 en la secuencia (2, 4, 6, 8), después reverse_iterator se dirige al elemento 4 en la secuencia invertida (8, 6, 4, 2).

Ejemplo

// 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;
}

Output

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.

Requisitos

encabezado: <iterador>

espacio de nombres: std

Vea también

Referencia

reverse_iterator Class

Biblioteca de plantillas estándar