swap_ranges

Scambia gli elementi di un intervallo con gli elementi di un altro, intervallo di dimensioni di uguale.

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

Parametri

  • _First1
    Un iteratore avanti che punta alla prima posizione del primo intervallo dei cui elementi è possibile scambiare.

  • _Last1
    Un iteratore avanti che punta a uno dopo la posizione finale del primo intervallo dei cui elementi è possibile scambiare.

  • _First2
    Un iteratore avanti che punta alla prima posizione del secondo intervallo dei cui elementi è possibile scambiare.

Valore restituito

Un iteratore avanti che punta a uno dopo la posizione finale del secondo intervallo dei cui elementi è possibile scambiare.

Note

Gli intervalli fatto riferimento siano validi, tutti i puntatori devono essere dereferenceable e all'interno di ogni sequenza dell'ultima posizione è raggiungibile da prima dall'aumento.Il secondo intervallo deve essere esteso del primo intervallo.

Complessità è lineare con _Last1 – gli scambi _First1 eseguiti.Se gli elementi contenitori dello stesso tipo di scambio, la relativa funzione membro swap dal contenitore devono essere utilizzati, in quanto la funzione membro in genere ha complessità costante.

Esempio

// 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;
}
  
  
  
  

Requisiti

intestazione: <algorithm>

Spazio dei nomi: deviazione standard

Vedere anche

Riferimenti

Libreria di modelli standard