📅  最后修改于: 2023-12-03 14:59:46.679000             🧑  作者: Mango
在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容器中的元素。