📜  C++ STL中的unordered_multimap swap()函数(1)

📅  最后修改于: 2023-12-03 15:13:56.844000             🧑  作者: Mango

C++ STL中的unordered_multimap swap()函数

unordered_multimap是C++ STL中的一个关联式容器,它使用哈希表实现,可以存储键值对,且不保证顺序。swap()函数是unordered_multimap容器提供的一个成员函数,可以用于交换两个unordered_multimap容器。

swap()函数语法
void swap(unordered_multimap& other)

swap()函数接受一个unordered_multimap容器的引用作为参数,用于交换当前容器和参数容器的内容。

swap()函数示例

下面是一个简单的示例,展示了如何使用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()函数会交换两个容器的元素,但不会改变它们的容量。
  • 在交换前,两个容器的类型必须相同。
  • 交换操作具有常数时间复杂度,并且不会抛出异常。