📅  最后修改于: 2023-12-03 15:13:55.890000             🧑  作者: Mango
在使用C++ STL的multimap
容器时,可能会遇到需要将两个multimap
交换的情况。此时,可以使用multimap
的swap()
函数。
multimap
的swap()
函数用于交换两个multimap
的元素。
void swap(multimap &x, multimap &y);
其中,x
和y
为要交换的两个multimap
。
无返回值。
在交换时,会交换两个multimap
所占用的内存空间,因此该操作可能会影响程序效率。同时,该操作并不会改变两个multimap
的大小,只是将它们的元素交换。
下面是一个简单的演示代码:
#include <iostream>
#include <map>
using namespace std;
int main() {
multimap<int, string> first = {{1, "apple"}, {2, "banana"}};
multimap<int, string> second = {{3, "cherry"}, {4, "durian"}};
cout << "Before swap:" << endl;
cout << "First multimap:" << endl;
for (auto x : first) {
cout << x.first << " : " << x.second << endl;
}
cout << "Second multimap:" << endl;
for (auto x : second) {
cout << x.first << " : " << x.second << endl;
}
first.swap(second);
cout << "After swap:" << endl;
cout << "First multimap:" << endl;
for (auto x : first) {
cout << x.first << " : " << x.second << endl;
}
cout << "Second multimap:" << endl;
for (auto x : second) {
cout << x.first << " : " << x.second << endl;
}
return 0;
}
输出如下:
Before swap:
First multimap:
1 : apple
2 : banana
Second multimap:
3 : cherry
4 : durian
After swap:
First multimap:
3 : cherry
4 : durian
Second multimap:
1 : apple
2 : banana
可以看到,在使用swap()
函数后,first
和second
的元素互相交换了。