Partager via


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

Voir aussi

Référence

reverse_copy (STL Samples)

Modèles Standard