swap_ranges
Tauscht die Elemente eines Bereichs mit den Elementen von anderen, - groß Bereich mit gleicher aus.
template<class ForwardIterator1, class ForwardIterator2>
ForwardIterator2 swap_ranges(
ForwardIterator1 _First1,
ForwardIterator1 _Last1,
ForwardIterator2 _First2
);
Parameter
_First1
Ein Vorwärtsiterator, der der ersten Position des ersten Bereichs zeigt, dessen Elemente einbezogen werden sollen._Last1
Ein Vorwärtsiterator, der auf einen hinter der letzten Position des ersten Bereichs zeigt, dessen Elemente einbezogen werden sollen._First2
Ein Vorwärtsiterator, der der ersten Position des zweiten Bereichs zeigt, dessen Elemente einbezogen werden sollen.
Rückgabewert
Ein Vorwärtsiterator, der auf einen hinter der letzten Position des zweiten Bereichs zeigt, dessen Elemente einbezogen werden sollen.
Hinweise
Die Bereiche, auf die verwiesen wird, müssen gültig sein, alle Zeiger müssen dereferenzierbar sein und innerhalb jeder Sequenz ist die letzte Position von der ersten durch Zunahme erreichbar.Der zweite Bereich muss so groß sein wie der erste Bereich.
Die Komplexität ist mit _Last1 - ausgeführtem _First1 Austausch linear.Wenn Elemente aus den Containern desselben Typs ausgelagert werden, sollten sie die swap-Memberfunktion von diesem Container verwendet werden, da die Memberfunktion in der Regel konstante Komplexität verfügt.
Beispiel
// 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;
}
Anforderungen
Header: <algorithm>
Namespace: std