Partager via


swap_ranges

Permute les éléments d'une plage avec les éléments des autres, plage de taille d'égal.

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

Paramètres

  • _First1
    Un itérateur vers l'avant pointant vers la première position du premier intervalle dont les éléments doivent être échangés.

  • _Last1
    Un itérateur vers l'avant qui désigne un au delà de la position finale du premier intervalle dont les éléments doivent être échangés.

  • _First2
    Un itérateur vers l'avant pointant vers la première position du deuxième intervalle dont les éléments doivent être échangés.

Valeur de retour

Un itérateur vers l'avant qui désigne un au delà de la position finale du deuxième intervalle dont les éléments doivent être échangés.

Notes

Les plages référencés doivent être valides ; tous les pointeurs doivent être deréférençables et dans chaque séquence la dernière position est accessible dès le début par l'augmentation.Le deuxième intervalle doit être étendu et que la première plage.

La complexité est linéaire avec _Last1 – les échanges de _First1 exécutés.Si les éléments des conteneurs du même type sont échangés, ils la fonction membre d' swap de ce conteneur doivent être utilisés, car la fonction membre a généralement la complexité constante.

Exemple

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

Configuration requise

en-tête : <algorithm>

l'espace de noms : DST

Voir aussi

Référence

Modèles Standard