c++unordered_map的swap函数
时间: 2024-05-04 19:14:22 浏览: 247
C++的unordered_map是一种关联容器,它提供了一种键值对的映射关系。swap函数是unordered_map类的一个成员函数,用于交换两个unordered_map对象的内容。
unordered_map的swap函数的语法如下:
```cpp
void swap(unordered_map& other);
```
其中,other是另一个unordered_map对象,表示要与当前unordered_map对象进行交换的对象。
使用swap函数可以快速高效地交换两个unordered_map对象的内容,而不需要逐个元素进行复制或移动。这在某些情况下可以提高程序的性能。
下面是一个示例代码,展示了如何使用swap函数交换两个unordered_map对象的内容:
```cpp
#include <iostream>
#include <unordered_map>
int main() {
std::unordered_map<int, std::string> map1 = {{1, "apple"}, {2, "banana"}};
std::unordered_map<int, std::string> map2 = {{3, "orange"}, {4, "grape"}};
std::cout << "Before swap:" << std::endl;
for (const auto& pair : map1) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
std::cout << std::endl;
for (const auto& pair : map2) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
std::cout << std::endl;
map1.swap(map2);
std::cout << "After swap:" << std::endl;
for (const auto& pair : map1) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
std::cout << std::endl;
for (const auto& pair : map2) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
return 0;
}
```
输出结果:
```
Before swap:
1: apple
2: banana
3: orange
4: grape
After swap:
3: orange
4: grape
1: apple
2: banana
```
阅读全文