📅  最后修改于: 2023-12-03 15:29:50.348000             🧑  作者: Mango
STL (Standard Template Library) 是 C++ 标准程序库的一部分,其中 map 是一个非常有用的容器。map 是一种关联容器,用于存储键-值对,其中键和值都可以是任何数据类型。
可以使用 map.swap() 函数交换两个 map 中存储的内容。这个函数被用来在两个 map 之间进行高效地交换键和值。
map.swap(othermap)
该函数不返回任何值。
以下代码示例演示了如何使用 map.swap() 函数:
#include <iostream>
#include <map>
using namespace std;
int main() {
// 创建第一个 map 容器
map<int, string> map1;
map1[1] = "apple";
map1[2] = "banana";
map1[3] = "orange";
// 创建第二个 map 容器
map<int, string> map2;
map2[4] = "grape";
map2[5] = "cherry";
map2[6] = "melon";
cout << "交换前:" << endl;
for (auto& it : map1) {
cout << it.first << " -> " << it.second << endl;
}
for (auto& it : map2) {
cout << it.first << " -> " << it.second << endl;
}
map1.swap(map2);
cout << "交换后:" << endl;
for (auto& it : map1) {
cout << it.first << " -> " << it.second << endl;
}
for (auto& it : map2) {
cout << it.first << " -> " << it.second << endl;
}
return 0;
}
输出:
交换前:
1 -> apple
2 -> banana
3 -> orange
4 -> grape
5 -> cherry
6 -> melon
交换后:
4 -> grape
5 -> cherry
6 -> melon
1 -> apple
2 -> banana
3 -> orange
以上代码首先创建了两个 map 容器 map1 和 map2,并向其中添加了不同的键值对。然后,使用 cout 输出了交换前的两个 map 容器中的内容。接下来,使用 map1.swap(map2) 交换两个 map 容器的内容。最后,再次使用 cout 输出了交换后的两个 map 容器中的内容。
map.swap() 是一种非常实用的函数,可以用于高效地交换两个 map 容器的内容。使用 map.swap() 可以有效地减少程序的运行时间,并提高代码的可读性。这个函数在各种 C++ 应用程序中都有广泛的应用,是每个程序员应该了解和掌握的关键技能之一。