English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C ++ map swap()La fonction est utilisée pour échanger (ou échanger) le contenu de deux map, mais les deux map doivent être du même type, bien que la taille puisse varier.
void swap (map& x);
x: pour le conteneur de map utilisé pour échanger le contenu.
pas
Voyons un exemple simple pour échanger les éléments d'un map dans un autre.
#include <iostream> #include <map> using namespace std; int main(void) { map<char, int> m1 ={ {'a', 1}, {'b', 2}, {'c', 3}, {'d', 4}, {'e', 5}, }; map<char, int> m2; m2.swap(m1); cout << "Map contient les éléments suivants" << endl; for (auto it = m2.begin(); it != m2.end(); ++it) cout << it->first << " << " << it->second << endl; return 0; }
Sortie :
Map contient les éléments suivants a = 1 b = 2 c = 3 d = 4 e = 5
dans l'exemple ci-dessus, Map m1a cinq éléments, tandis que m2est vide. Lorsque vous mettez m1est échangé en m2lorsque m1tous les éléments de l'ensemble2.
让我们看一个简单的示例,交换两个map的内容。
#include <iostream> #include <map> using namespace std; int main () { map<char, int> map1,map2; map1['x'] =100; map1['y'] =200; map2['a'] =110; map2['b'] =220; map2['c'] =330; map1.swap(map2); cout << "map1 contient:\n"; for (map<char, int>::iterator it = map1.begin(); it != map1.end(); ++it) cout << it->first << " << " << it->second << \n'; cout << "map2 contient:\n"; for (map<char, int>::iterator it = map2.begin(); it != map2.end(); ++it) cout << it->first << " << " << it->second << \n'; return 0; }
Sortie :
map1 contient : a => 110 b => 220 c => 330 map2 contient : x => 100 y => 200
Dans l'exemple ci-dessus, deux Map (c'est-à-dire map1et map2)的内容相互交换。
让我们看一个简单的示例,交换两个map的内容。
#include<iostream> #include<map> using namespace std; int main() { map<int, char> map1, map2; map1\[1\] = \"a\"; map1\[2\] = \"b\"; map1\[3\] = \"c\"; map1\[4\] = \"d\"; map2\[5\] = \"w\"; map2\[6\] = \"x\"; map2\[7] = \"y\"; //交换map的元素 swap(map1, map2); //打印map的元素 cout << "map1:\n"<< \"\tKEY\tELEMENT\n"; for (auto it = map1.begin(); it != map1.end(); it++); cout << \"\t" << it->first << \"\t" << it->second << \n'; cout << "map2:\n"<< \"\tKEY\tELEMENT\n"; for (auto it = map2.begin(); it != map2.end(); it++); cout << \"\t" << it->first << \"\t" << it->second << \n'; return 0; }
Sortie :
map1: KEY ELEMENT 5 w 6 x 7 y map2: KEY ELEMENT 1 a 2 b 3 c 4 d
在上面的示例中,另一种形式的swap()函数用于交换两个映射的内容。
让我们看一个简单的实例。
#include <iostream> #include <string> #include <map> using namespace std; void show(const char *msg, map<string, int> mp); int main() { map<string, int> m1, m2; m1.insert(pair<string, int>("A", 100)); m1.insert(pair<string, int>("G", 300)); m1.insert(pair<string, int>("B", 200)); // échanger m1et m2的内容。 cout << "交换m1et m2。\n"; m1.swap(m2); show("Contents of m2: ", m2); show("Contents of m1: ", m1); // Clear m1. m1.clear(); if(m1.empty()) cout << "m1 为空."; return 0; } // 使用迭代器显示map<string, int>的内容。 void show(const char *msg, map<string, int> mp) { iterator itr; cout << msg << endl; for(itr=mp.begin(); itr != mp.end(); ++itr) cout << " " << itr->first << ", " << itr->second << endl; cout << endl; }
Sortie :
échanger m1et m2. m2Contenu: A, 100 B, 200 G, 300 m1Contenu: m1 est vide.
Dans l'exemple ci-dessus, Mapm1le contenu a été échangé vers Map m2et dans l'échange de Map m1 a été supprimée.