English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.
void swap (set& x);
x:échange le conteneur avec lequel il est échangé.
Aucun
Inchangé.
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.
Les conteneurs et x sont tous deux modifiés.
S'il y a une exception, cela n'affecte pas le conteneur.
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.
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
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.
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.