list::rend
Retourne un itérateur qui gère l'emplacement suivant le dernier élément dans une liste inversée.
const_reverse_iterator rend( ) const;
reverse_iterator rend( );
Valeur de retour
Un itérateur bidirectionnel inverse qui gère l'emplacement succédant au dernier élément d'une liste inversée (emplacement qui avait précédé le premier élément de la liste non inversée).
Notes
rend est utilisé avec une liste inversée comme fin est utilisé avec une liste.
Si la valeur de retour de rend est assignée à const_reverse_iterator, il est impossible de modifier l'objet de liste. Si la valeur de retour de rend est assignée à reverse_iterator, il est impossible de modifier l'objet de liste.
Il est possible d'utiliser rend pour tester si un itérateur inverse a atteint la fin de sa liste.
La valeur retournée par rend ne doit pas être déréférencée.
Exemple
// list_rend.cpp
// compile with: /EHsc
#include <list>
#include <iostream>
int main( )
{
using namespace std;
list <int> c1;
list <int>::iterator c1_Iter;
list <int>::reverse_iterator c1_rIter;
// If the following line had replaced the line above, an error would
// have resulted in the line modifying an element (commented below)
// because the iterator would have been const
// list <int>::const_reverse_iterator c1_rIter;
c1.push_back( 10 );
c1.push_back( 20 );
c1.push_back( 30 );
c1_rIter = c1.rend( );
c1_rIter --; // Decrementing a reverse iterator moves it forward in
// the list (to point to the first element here)
cout << "The first element in the list is: " << *c1_rIter << endl;
cout << "The list is:";
for ( c1_Iter = c1.begin( ); c1_Iter != c1.end( ); c1_Iter++ )
cout << " " << *c1_Iter;
cout << endl;
// rend can be used to test if an iteration is through all of the
// elements of a reversed list
cout << "The reversed list is:";
for ( c1_rIter = c1.rbegin( ); c1_rIter != c1.rend( ); c1_rIter++ )
cout << " " << *c1_rIter;
cout << endl;
c1_rIter = c1.rend( );
c1_rIter--; // Decrementing the reverse iterator moves it backward
// in the reversed list (to the last element here)
*c1_rIter = 40; // This modification of the last element would have
// caused an error if a const_reverse iterator had
// been declared (as noted above)
cout << "The modified reversed list is:";
for ( c1_rIter = c1.rbegin( ); c1_rIter != c1.rend( ); c1_rIter++ )
cout << " " << *c1_rIter;
cout << endl;
}
Configuration requise
En-tête : <list>
Espace de noms : std