📅  最后修改于: 2023-12-03 14:39:52.658000             🧑  作者: Mango
在C++ STL中,unordered_multiset是一种容器,它是一个无序的键-值对集合,其中的元素可以重复,且元素的排列顺序是任意的。而swap()是用于交换两个对象的值的函数。
void swap(unordered_multiset& other);
其中,other是要与当前对象进行交换的unordered_multiset对象。
#include <iostream>
#include <unordered_set>
using namespace std;
int main() {
unordered_multiset<int> myset{ 5, 10, 15 };
unordered_multiset<int> myset2{ 10, 20, 30 };
cout << "myset: ";
for (auto i : myset) {
cout << i << " ";
}
cout << endl;
cout << "myset2: ";
for (auto i : myset2) {
cout << i << " ";
}
cout << endl;
myset.swap(myset2);
cout << "After swap:" << endl;
cout << "myset: ";
for (auto i : myset) {
cout << i << " ";
}
cout << endl;
cout << "myset2: ";
for (auto i : myset2) {
cout << i << " ";
}
cout << endl;
return 0;
}
此程序输出:
myset: 15 5 10
myset2: 10 20 30
After swap:
myset: 10 20 30
myset2: 15 5 10
在此示例中,我们首先创建了两个unordered_multiset对象,myset和myset2,并且它们分别包含3个元素。然后,我们使用swap()函数交换了这两个对象的值,最终输出了它们的新值。
交换操作可用于合并两个unordered_multiset对象或者将一个对象添加到另一个对象中。此外,也可以使用swap()函数在不丢失任何元素的情况下,更快地清空一个unordered_multiset对象。