English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C++ Tutoriel de base

C++ Contrôle de flux

C++ Fonction

C++ Tableau & Chaîne

C++ Structure de données

C++ Classe & Objet

C++ Pointeurs

C++ Héritage

C++ Tutorial STL

C++ Manuel de référence

C++ Méthode d'utilisation et exemple de set swap()

C++ Set (ensemble) STL

C ++ swap()La fonction est utilisée pour échanger (ou remplacer) le contenu de deux ensembles, mais les deux ensemblesTypeDoitIdentiqueBien que la taille puisse être différente.

Syntaxe

void swap (set& x);

Paramètres

x:échange le conteneur avec lequel il est échangé.

Retourne la valeur

Aucun

Complexité

Inchangé.

Validité des itérateurs

Toutes les références, les itérateurs et les pointeurs vers les éléments de deux conteneurs de ensemble sont encore valides, mais maintenant, il faut itérer sur un autre conteneur de ensemble et y effectuer des itérations.

Concurrence des données

Les conteneurs et x sont tous deux modifiés.

Sécurité des exceptions

S'il y a une exception, cela n'affecte pas le conteneur.

Exemple1

Voyons un exemple simple, échangez un ensemble d'éléments avec un autre ensemble :

#include <iostream>
#include <set>
using namespace std;
int main(void) {
   set<int> m1 ={1,2,3,4,5};
   set<int> m2;
   m2.swap(m1);
   cout << "Le ensemble contient les éléments suivants" << endl;
   for (auto it = m2.begin(); it != m2.end(); ++it)
      cout << *it<< endl;
   return 0;
}

Sortie :

Le ensemble contient les éléments suivants
1
2
3
4
5

Dans l'exemple précédent, le ensemble m1à cinq éléments, tandis que m2S'il vous plaît remplir. Lorsque vous mettez m1lorsque m2seront échangés pour m1Tous les éléments de l'ensemble2.

Exemple2

Laissez-nous voir un exemple simple pour échanger deux paires de contenu :

#include <iostream>
#include <set>
using namespace std;
 int main () {
   int myints[] = {10,20,30,40,50,60});
   set<int> first (myints, myints+3);
   set<int> second (myints+3, myints+6);  
   first.swap(second);
   cout << "La première collection contient:";
   for (set<int>::iterator it = first.begin(); it != first.end(); ++it)
      cout << ' ' << *it;
   cout << '\n';
   cout << "La deuxième collection contient:";
   for (set<int>::iterator it = second.begin(); it != second.end(); ++it)
      cout << ' ' << *it;
   cout << '\n';
   return 0;
}

Sortie :

La première collection contient : 40 50 60
La deuxième collection contient : 10 20 30

Exemple3

Laissez-nous voir un exemple simple pour échanger le contenu de deux ensembles :

#include<iostream>
#include<set>
using namespace std;
 
int main()
{
    // Prendre deux ensembles arbitraires
    set<char> set1, set2;
    
    set1 = { 'a', 'b', 'c', 'd' }; 
    set2 = { 'x', 'y', 'z' };
 
    // Échange des éléments de l'ensemble
    swap(set1, set2);
 
    // Affichage des éléments de l'ensemble
    cout << "set1:\n";
    for (auto it = set1.begin(); it != set1.end(); it++)
        cout << "\t" << *it << '\n';
 
    cout << "set2:\n";
    for (auto it = set2.begin(); it != set2.end(); it++)
        cout << "\t" << *it << '\n';
 
    return 0;
}

Sortie :

set1:
	x
	y
	z
set2:
	a
	b
	c
	d

Dans l'exemple ci-dessus, une autre forme de la fonction swap() est utilisée pour échanger le contenu de deux ensembles.

Exemple4

Laissez-nous voir un exemple simple :

#include <set>  
#include <iostream>  
  
int main( )  
{  
   using namespace std;  
   set <int> s1, s2, s3;  
   set <int>::iterator s1_Iter;  
  
   s1.insert( 10 );  
   s1.insert( 20 ");  
   s1.insert( 30 ");  
   s2.insert( 100 ");  
   s2.insert( 200 ");  
   s3.insert( 300 ");  
  
   cout << "原始集合s1Est :";  
   for ( s1_Iter = s1.begin( ); s1_Iter != s1.end( ); s1_Iter++ )  
      cout << " " << *s1_Iter;  
   cout  << "." << endl;  
  
   // C'est la version membre de swap
   s1.swap( s2 );  
  
   cout << "et s2Après l'échange, la liste s1de:";  
   for ( s1_Iter = s1.begin( ); s1_Iter != s1.end( ); s1_Iter++ )  
      cout << " " << *s1_Iter;  
   cout << "." << endl;  
  
   // Ceci est une version spécifique de modèle swap
   swap( s1, s3 );  
  
   cout << "Avec s3Après l'échange, la liste s1Est :";  
   for ( s1_Iter = s1.begin( ); s1_Iter != s1.end( ); s1_Iter++ )  
      cout << " " << *s1_Iter;  
   cout  << "." << endl;  
}

Sortie :

Ensemble original s1Est : 10 20 30.
Avec s2Après l'échange, la liste s1Est : 100 200.
Avec s3Après l'échange, la liste s1Est : 300.

C++ Set (ensemble) STL