Manipulation de données - Échange d'éléments

Décembre 2016

Échange d’éléments

L’algorithme swap_ranges permet d’échanger le contenu de deux séquences d’éléments. Cet algorithme prend en argument les deux itérateurs définissant la première séquence et un itérateur destination permettant d’indiquer le premier élément de la deuxième séquence, avec les éléments de laquelle l’échange doit être fait. La valeur retournée est l’itérateur de fin de cette séquence, une fois l’opération terminée.

swap_ranges

Voici la déclaration dans la STL :
template <class ForwardIterator, class ForwardIterator2> 
ForwardIterator2 swap_ranges(ForwardIterator premier, ForwardIterator dernier, 
ForwardIterator2 destination);

Code 9.3 : algorithme d’échange d’éléments

#include <iostream> 
#include <list> 
#include <algorithm> 

using namespace std; 

typedef list<int> li; 
void AfficherListe(li); 

int main() 
{ 
    //On crée une liste d’entiers : 
   li ma_liste; 
   //On la remplit 
   ma_liste.push_back(1); 
   ma_liste.push_back(2); 
   ma_liste.push_back(3); 
   ma_liste.push_back(4); 

   cout << "Voici la liste initiale: \n"; 
   AfficherListe(ma_liste); 

   // On crée un tableau de 4 éléments initialisés: 
   int tab[4] = {10, 20, 30, 40}; 

   cout << "Voici le tableau initial: \n"; 
   for (int i=0; i<4; i++) 
      cout << tab[i] << " "; 
   cout << endl; 

   //On échange le contenu des 2 conteneurs : 
   swap_ranges(tab, tab+4, ma_liste.begin()); 

cout << "Voici la nouvelle liste: \n"; 
AfficherListe(ma_liste); 

cout << "Voici le nouveau tableau: \n"; 
for (int j=0; j<4; j++) 
      cout << tab[j] << " "; 
   cout << endl; 

} 

//Définition de l’affichage de la liste 
void AfficherListe(li l) 
{ 
   li::iterator iter = l.begin(); 
   while (iter != l.end()) 
   { 
      cout << *iter << " "; 
      iter++; 
   } 
   cout << endl; 
}


On obtient :

Voici la liste initiale: 
1 2 3 4  
Voici le tableau initial: 
10 20 30 40  
Voici la nouvelle liste: 
10 20 30 40  
Voici le nouveau tableau: 
1 2 3 4


Le texte original de cette fiche pratique est extrait de
«Tout sur le C++» (Christine EBERHARDT, Collection
CommentCaMarche.net, Dunod, 2009)

A voir également :

Ce document intitulé «  Manipulation de données - Échange d'éléments  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.