Udostępnij za pośrednictwem


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

Zobacz też

Informacje

Standardowa biblioteka szablonów