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

📅  最后修改于: 2023-12-03 14:59:46.679000             🧑  作者: Mango

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

在C++ STL中,multimap是一种基于关键字排序的关联容器,它允许多个元素拥有相同的关键字。multimap可以通过不同的构造函数进行初始化,并提供了一系列成员函数用于访问和操作容器中的元素。

其中,swap()函数是multimap容器提供的一个成员函数,它的作用是交换两个multimap容器的内容。以下是swap()函数的语法:

void swap(multimap& x, multimap& y);

在上述语法中,x和y分别表示需要进行交换操作的两个multimap容器。

接下来,我们来看一段使用swap()函数的示例代码,代码中创建了两个multimap容器,并使用swap()函数来交换它们的内容:

#include <iostream>
#include <map>

int main()
{
    std::multimap<int, char> mymap1 {{1, 'a'}, {2, 'b'}, {3, 'c'}};
    std::multimap<int, char> mymap2 {{4, 'd'}, {5, 'e'}};

    std::cout << "Before swap:\n";
    std::cout << "mymap1 contains:\n";
    for (auto& x: mymap1) std::cout << x.first << ": " << x.second << '\n';
    std::cout << "mymap2 contains:\n";
    for (auto& x: mymap2) std::cout << x.first << ": " << x.second << '\n';

    mymap1.swap(mymap2);

    std::cout << "After swap:\n";
    std::cout << "mymap1 contains:\n";
    for (auto& x: mymap1) std::cout << x.first << ": " << x.second << '\n';
    std::cout << "mymap2 contains:\n";
    for (auto& x: mymap2) std::cout << x.first << ": " << x.second << '\n';

    return 0;
}

在上述代码中,我们首先创建了两个multimap容器mymap1和mymap2,并分别初始化它们的内容。接着,我们使用了swap()函数将这两个容器的内容进行了交换。

最后,我们使用循环打印了交换后的容器内容,观察到mymap1容器保存了原先mymap2容器的内容,mymap2容器保存了原先mymap1容器的内容。

执行上述程序,我们可以得到如下输出结果:

Before swap:
mymap1 contains:
1: a
2: b
3: c
mymap2 contains:
4: d
5: e
After swap:
mymap1 contains:
4: d
5: e
mymap2 contains:
1: a
2: b
3: c

从输出结果可以看出,swap()函数已经成功地将两个multimap容器的内容进行了交换。需要注意的是,交换后的容器本身并没有改变,只是内部的元素发生了变化,也就是说mymap1和mymap2还是原先那两个容器。

通过本文,我们了解了C++ STL中的multimap swap()函数,它可以非常方便地交换两个multimap容器中的元素。