reverse_copy
Inverse l'ordre des éléments dans une plage source lors de les copie dans une plage de destination
template<class BidirectionalIterator, class OutputIterator>
OutputIterator reverse_copy(
BidirectionalIterator _First,
BidirectionalIterator _Last,
OutputIterator _Result
);
Paramètres
_First
Un itérateur bidirectionnelle qui pointent vers la position du premier élément dans la plage source dans lequel les éléments sont permutés._Last
Un itérateur bidirectionnelle qui pointent vers la position une après l'élément final dans la plage source dans lequel les éléments sont permutés._Result
Un itérateur de sortie qui pointent vers la position du premier élément dans la plage de destination dans lequel les éléments sont copiés.
Valeur de retour
Un itérateur de sortie qui pointent vers la position une après l'élément final dans la plage de destination vers lequel la séquence d'éléments modifiée est copiée.
Notes
Les plages de source et de destination référencées doivent être valides ; tous les pointeurs doivent être deréférençables et dans la séquence la dernière position est accessible la collection contenue par l'augmentation.
reverse_copy a deux formulaires connexes :
Pour plus d'informations sur le comportement de ces fonctions, 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 : <algorithme>
Espace de noms : std