English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C ++ std swap() Utilisation et exemple stdswap (set) ++CsetdeFonction non membre。Cela est utilisé pour échanger (ou remplacer) le contenu de deux ensembles (c'est-à-dire x et y), mais les types des deux ensembles doivent être les mêmes, et la taille des ensembles peut être différente.
template <class T, class Compare, class Alloc> void swap (set<T,Compare,Alloc>& x, set<T,Compare,Alloc>& y);
x:L'objet de la première collection set.
y:deuxième objet du même type.
Pas
Inchangé.
Tous les itérateurs référençant les éléments des deux conteneurs, les références et les pointeurs restent valides.
Veuillez noter que l'itérateur de fin ne fait pas référence à l'élément et peut être invalide.
Les conteneurs x et y sont modifiés.
L'appel ne contient aucune des éléments inclus.
Cette fonction ne provoque pas d'exception.
Voyons un exemple simple, échanger un ensemble d'éléments avec un autre ensemble :
#include <iostream> #include <set> using namespace std; int main(void) { set<char> m1 = {'a','b','c','d'}; set<char> m2; swap(m1, m2); 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 a b c d
Dans l'exemple ci-dessus, l'ensemble m1composé de cinq éléments, tandis que m2S'il vous plaît remplir.1交换为m2时,m1的所有元素都将交换为m2。
让我们看一个简单的示例来交换两个集合的内容:
#include <iostream> #include <set> using namespace std; int main () { set<int> set1,set2; set1= {100,200}; set2 = {110, 220, 330}); swap(set1,set2); cout << "set1 包含:\n"; for (set<int>::iterator it=set1.begin(); it!=set1.end(); ++it) cout << *it<< '\n'; cout << "set2 包含:\n"; for (set<int>::iterator it=set2.begin(); it!=set2.end(); ++it) cout << *it<< '\n'; return 0; }
Sortie :
set1 包含: 110 220 330 set2 包含: 100 200
在上面的示例中,两个集合(即set1和set2)的内容相互交换。
让我们看一个简单的示例来交换两个集合的内容:
#include <iostream> #include <set> using namespace std; int main () { int myints[]={12,75,10,32,20,25}; set<int> first (myints,myints+3); // 10,12,75 set<int> second (myints+3,myints+6); // 20,25,32 swap(first,second); cout << "first 包含:"; for (set<int>::iterator it=first.begin(); it!=first.end(); ++it) cout << ' ' << *it; cout << '\n'; cout << "second 包含:"; for (set<int>::iterator it=second.begin(); it!=second.end(); ++it) cout << ' ' << *it; cout << '\n'; return 0; }
Sortie :
first 包含: 20 25 32 second 包含: 10 12 75
让我们看一个简单的实例:
#include <iostream> #include <string> #include <set> using namespace std; void show(const char *msg, set<int> mp); int main() { set<int> m1, m2; m1.insert(100); m1.insert(300); m1.insert(200); // échanger m1et m2Le contenu. cout << "交换m1et m2的内容。\n"; swap(m1,m2); show("m2内容: ", m2); show("m1内容: ", m1); // Clear m1. m1.clear(); if(m1.empty()) cout << "m1 is now empty."; return 0; } // 通过使用迭代器显示set<string, int>的内容。 void show(const char *msg, set<int> mp) { set<int>::iterator itr; cout << msg << endl; for(itr=mp.begin(); itr != mp.end(); ++itr) cout << " \" \" << *itr << endl; cout << endl; }
Sortie :
échanger m1et m2Le contenu. m2Contenu: 100 200 300 m1Contenu: m1 est maintenant vide.
Dans l'exemple ci-dessus, l'ensemble m1Le contenu a été échangé avec l'ensemble m2et après avoir échangé m1Après cela, l'ensemble a été effacé.