reverse_copy
Inverse l'ordre des éléments dans une plage source en les copiant dans un intervalle de destination
template<class BidirectionalIterator, class OutputIterator>
OutputIterator reverse_copy(
BidirectionalIterator _First,
BidirectionalIterator _Last,
OutputIterator _Result
);
Paramètres
_First
Un itérateur bidirectionnel pointant vers la position du premier élément de la plage source dans lequel les éléments sont échangés._Last
Un itérateur bidirectionnel pointant sur une position au delà de le dernier élément dans la plage source dans lequel les éléments sont échangés._Result
Un itérateur de sortie qui pointe vers la position du premier élément de la plage de destination dans lequel les éléments sont copiés.
Valeur de retour
Un itérateur de sortie qui pointe vers la position une au delà de le dernier élément dans la plage de destination vers laquelle la séquence modifiée d'éléments est copiée.
Notes
La source et les intervalles de destination référencés doivent être valides ; tous les pointeurs doivent être deréférençables et dans la séquence la dernière position est accessible dès le début par l'augmentation.
reverse_copy a deux formes associées :
Pour plus d'informations sur ces fonctions se comportent, consultez Itérateurs vérifiés.
Exemple
// alg_reverse_copy.cpp
// compile with: /EHsc
#include <vector>
#include <algorithm>
#include <iostream>
int main( ) {
using namespace std;
vector <int> v1, v2( 10 );
vector <int>::iterator Iter1, Iter2;
int i;
for ( i = 0 ; i <= 9 ; i++ )
{
v1.push_back( i );
}
cout << "The original vector v1 is:\n ( " ;
for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ )
cout << *Iter1 << " ";
cout << ")." << endl;
// Reverse the elements in the vector
reverse_copy (v1.begin( ), v1.end( ), v2.begin( ) );
cout << "The copy v2 of the reversed vector v1 is:\n ( " ;
for ( Iter2 = v2.begin( ) ; Iter2 != v2.end( ) ; Iter2++ )
cout << *Iter2 << " ";
cout << ")." << endl;
cout << "The original vector v1 remains unmodified as:\n ( " ;
for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ )
cout << *Iter1 << " ";
cout << ")." << endl;
}
Sortie
The original vector v1 is:
( 0 1 2 3 4 5 6 7 8 9 ).
The copy v2 of the reversed vector v1 is:
( 9 8 7 6 5 4 3 2 1 0 ).
The original vector v1 remains unmodified as:
( 0 1 2 3 4 5 6 7 8 9 ).
Configuration requise
en-tête : <algorithm>
l'espace de noms : DST