swap_ranges
Wymienia elementy jeden zakres z zakresu elementów innego równych wielkości.
template<class ForwardIterator1, class ForwardIterator2>
ForwardIterator2 swap_ranges(
ForwardIterator1 _First1,
ForwardIterator1 _Last1,
ForwardIterator2 _First2
);
Parametry
_First1
Do przodu sterująca, wskazując na pierwszym miejscu pierwszym zakresem, którego elementy mają być wymieniane._Last1
Do przodu sterująca, wskazując przeszłości ostatecznego stanowiska pierwszym zakresem, którego elementy mają być wymieniane._First2
Do przodu sterująca, wskazując na pierwszym miejscu drugi zakres, którego elementy mają być wymieniane.
Wartość zwracana
Do przodu sterująca, wskazując przeszłości ostatecznego stanowiska drugi zakres, którego elementy mają być wymieniane.
Uwagi
Zakresy, do których odwołuje się musi być prawidłowy; wszystkie wskaźniki muszą być dereferenceable i w ramach każdej sekwencji ostatniej pozycji jest dostępny z pierwszym przez incrementation.Drugi zakres musi być tak duży, jak pierwszy zakres.
Złożoność jest liniowy z _Last1 - _First1 swapów wykonywane.Jeśli elementy z kontenerów tego samego typu są są zamienione, je swap funkcji członka z tego kontenera, należy używać, ponieważ funkcji członka ma zazwyczaj stałe złożoności.
Przykład
// 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;
}
Wymagania
Nagłówek: <algorytm>
Przestrzeń nazw: std