swap_ranges
Permute les éléments d'une plage avec les éléments des autres, plage de taille d'égal.
template<class ForwardIterator1, class ForwardIterator2>
ForwardIterator2 swap_ranges(
ForwardIterator1 _First1,
ForwardIterator1 _Last1,
ForwardIterator2 _First2
);
Paramètres
_First1
Un itérateur vers l'avant pointant vers la première position du premier intervalle dont les éléments doivent être échangés._Last1
Un itérateur vers l'avant qui désigne un au delà de la position finale du premier intervalle dont les éléments doivent être échangés._First2
Un itérateur vers l'avant pointant vers la première position du deuxième intervalle dont les éléments doivent être échangés.
Valeur de retour
Un itérateur vers l'avant qui désigne un au delà de la position finale du deuxième intervalle dont les éléments doivent être échangés.
Notes
Les plages référencés doivent être valides ; tous les pointeurs doivent être deréférençables et dans chaque séquence la dernière position est accessible dès le début par l'augmentation.Le deuxième intervalle doit être étendu et que la première plage.
La complexité est linéaire avec _Last1 – les échanges de _First1 exécutés.Si les éléments des conteneurs du même type sont échangés, ils la fonction membre d' swap de ce conteneur doivent être utilisés, car la fonction membre a généralement la complexité constante.
Exemple
// 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;
}
Configuration requise
en-tête : <algorithm>
l'espace de noms : DST