📜  C++ STL中的unordered_multiset swap()(1)

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

C++ STL中的unordered_multiset swap()

在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对象。