Freigeben über


swap_ranges

Vertauscht die Elemente eines Bereichs mit den Elementen von anderen, - groß Bereich gleicher aus.

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

Parameter

  • _First1
    Ein Vorwärtsiterator, der an der ersten Position des ersten Bereichs zeigt, dessen Elemente ausgetauscht werden sollen.

  • _Last1
    Ein Vorwärtsiterator, der auf einen hinter der letzten Position des ersten Bereichs zeigt, dessen Elemente ausgetauscht werden sollen.

  • _First2
    Ein Vorwärtsiterator, der an der ersten Position des zweiten Bereich zeigt, dessen Elemente ausgetauscht werden sollen.

Rückgabewert

Ein Vorwärtsiterator, der auf einen hinter der letzten Position des zweiten Bereich zeigt, dessen Elemente ausgetauscht werden sollen.

Hinweise

Die Bereiche, auf die verwiesen wird, müssen gültig sein; alle Zeiger müssen dereferenzierbar befinden jeder Sequenz ist die letzte Position der ersten von Zunahme erreichbar. Der zweite Bereich muss so groß sein wie dem ersten Bereich.

Die Komplexität ist mit _Last1- ausgeführten _First1 Austauschen linear. Wenn Elemente von den Containern desselben Typs einbezogen werden, müssen sie die swap-Memberfunktion von diesem Container verwendet werden, da die Memberfunktion normalerweise 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

Siehe auch

Referenz

Standardvorlagenbibliothek