📅  最后修改于: 2023-12-03 15:13:56.844000             🧑  作者: Mango
unordered_multimap
是C++ STL中的一个关联式容器,它使用哈希表实现,可以存储键值对,且不保证顺序。swap()
函数是unordered_multimap
容器提供的一个成员函数,可以用于交换两个unordered_multimap
容器。
void swap(unordered_multimap& other)
swap()
函数接受一个unordered_multimap
容器的引用作为参数,用于交换当前容器和参数容器的内容。
下面是一个简单的示例,展示了如何使用swap()
函数来交换两个unordered_multimap
容器。
#include <iostream>
#include <unordered_map>
int main() {
std::unordered_multimap<int, std::string> myMap1 = {
{1, "one"},
{2, "two"},
{3, "three"}
};
std::unordered_multimap<int, std::string> myMap2 = {
{4, "four"},
{5, "five"}
};
std::cout << "myMap1:\n";
for (const auto& pair : myMap1) {
std::cout << pair.first << ": " << pair.second << '\n';
}
std::cout << "\nmyMap2:\n";
for (const auto& pair : myMap2) {
std::cout << pair.first << ": " << pair.second << '\n';
}
myMap1.swap(myMap2);
std::cout << "\nmyMap1 after swap:\n";
for (const auto& pair : myMap1) {
std::cout << pair.first << ": " << pair.second << '\n';
}
std::cout << "\nmyMap2 after swap:\n";
for (const auto& pair : myMap2) {
std::cout << pair.first << ": " << pair.second << '\n';
}
return 0;
}
输出结果为:
myMap1:
1: one
2: two
3: three
myMap2:
4: four
5: five
myMap1 after swap:
4: four
5: five
myMap2 after swap:
1: one
2: two
3: three
如上所示,swap()
函数成功交换了两个unordered_multimap
容器。
swap()
函数会交换两个容器的元素,但不会改变它们的容量。