📜  C++ STL-map.swap()函数(1)

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

C++ STL map.swap() 函数

介绍

STL (Standard Template Library) 是 C++ 标准程序库的一部分,其中 map 是一个非常有用的容器。map 是一种关联容器,用于存储键-值对,其中键和值都可以是任何数据类型。

可以使用 map.swap() 函数交换两个 map 中存储的内容。这个函数被用来在两个 map 之间进行高效地交换键和值。

语法

map.swap(othermap)

  • map: 一个 map 容器。
  • othermap:另一个 map 容器。
返回值

该函数不返回任何值。

示例

以下代码示例演示了如何使用 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++ 应用程序中都有广泛的应用,是每个程序员应该了解和掌握的关键技能之一。