Para ver el artículo en inglés, active la casilla Inglés. También puede ver el texto en inglés en una ventana emergente si pasa el puntero del mouse por el texto.
Traducción
Inglés

reverse_copy

 

Publicada: junio de 2016

Invierte el orden de los elementos dentro de un intervalo de origen mientras los copia a un intervalo de destino


template<class BidirectionalIterator, class OutputIterator>
   OutputIterator reverse_copy(
      BidirectionalIterator 
_First,
      BidirectionalIterator 
_Last,
      OutputIterator 
_Result
   );

_First

Iterador bidireccional que apunta a la posición del primer elemento del intervalo de origen en el que se permutan los elementos.

_Last

Iterador bidireccional que apunta a la posición situada una posición después del último elemento del intervalo de origen en el que se permutan los elementos.

_Result

Iterador de salida que apunta a la posición del primer elemento del intervalo de destino en el que se copian los elementos.

Iterador de salida que apunta a la posición situada una posición después del último elemento del intervalo de destino en el que se va a copiar la secuencia de elementos modificada.

Los intervalos de origen y destino a los que se hace referencia deben ser válidos; todos los punteros se deben poder desreferenciar y, dentro de la secuencia, la última posición debe ser accesible desde la primera mediante incrementos.

reverse_copy tiene dos formatos relacionados:

  • checked_reverse_copy

  • unchecked_reverse_copy

Para obtener más información sobre el comportamiento de estas funciones, vea Iteradores activados.

Ejemplo

// 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;
}

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 ).

Requisitos

Encabezado: <algorithm>

Espacio de nombres: std

Mostrar: