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