Partager via


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

Voir aussi

Référence

reverse_copy (Exemples STL)

Bibliothèque STL (Standard Template Library)