Compartir a través de


swap_ranges

Cambie los elementos de un intervalo con elementos de otro, como - intervalo ordenados.

template<class ForwardIterator1, class ForwardIterator2>
   ForwardIterator2 swap_ranges(
      ForwardIterator1 _First1, 
      ForwardIterator1 _Last1,
      ForwardIterator2 _First2
   );

Parámetros

  • _First1
    Un iterador hacia delante que apunta a la primera posición del primer intervalo cuyos elementos deben intercambiarse.

  • _Last1
    Un iterador hacia delante que elija uno más allá de la posición final del primer intervalo cuyos elementos deben intercambiarse.

  • _First2
    Un iterador hacia delante que apunta a la primera posición del segundo intervalo cuyos elementos deben intercambiarse.

Valor devuelto

Un iterador hacia delante que elija uno más allá de la posición final del segundo intervalo cuyos elementos deben intercambiarse.

Comentarios

Los intervalos especificados deben ser válidos; todos los punteros deben ser dereferenceable y dentro de cada secuencia la posición última es accesible de primera por el aumento.el segundo intervalo tiene que ser tan grande como el primer intervalo.

La complejidad es lineal con _Last1 – los intercambios de_First1 realizados.Si los elementos de los contenedores del mismo tipo se pasa, la función miembro de swap de ese contenedor deben utilizar, porque la función miembro suele complejidad constante.

Ejemplo

// alg_swap_ranges.cpp
// compile with: /EHsc
#include <vector>
#include <deque>
#include <algorithm>
#include <iostream>

int main( ) 
{
   using namespace std;
   vector <int> v1;
   deque <int> d1;
   vector <int>::iterator v1Iter1;
   deque<int>::iterator d1Iter1;

   int i;
   for ( i = 0 ; i <= 5 ; i++ )
   {
      v1.push_back( i );
   }

   int ii;
   for ( ii =4 ; ii <= 9 ; ii++ )
   {
      d1.push_back( 6 );
   }

   cout << "Vector v1 is ( " ;
   for ( v1Iter1 = v1.begin( ) ; v1Iter1 != v1.end( ) ;v1Iter1 ++ )
      cout << *v1Iter1  << " ";
   cout << ")." << endl;

   cout << "Deque d1 is  ( " ;
   for ( d1Iter1 = d1.begin( ) ; d1Iter1 != d1.end( ) ;d1Iter1 ++ )
      cout << *d1Iter1  << " ";
   cout << ")." << endl;

   swap_ranges ( v1.begin ( ) , v1.end ( ) , d1.begin ( ) );

   cout << "After the swap_range, vector v1 is ( " ;
   for ( v1Iter1 = v1.begin( ) ; v1Iter1 != v1.end( ) ;v1Iter1 ++ )
      cout << *v1Iter1 << " ";
   cout << ")." << endl;

   cout << "After the swap_range deque d1 is   ( " ;
   for ( d1Iter1 = d1.begin( ) ; d1Iter1 != d1.end( ) ;d1Iter1 ++ )
      cout << *d1Iter1 << " ";
   cout << ")." << endl;
}
  
  
  
  

Requisitos

encabezado: <algoritmo>

espacio de nombres: std

Vea también

Referencia

Biblioteca de plantillas estándar