📜  C++ STL中的unordered_multiset运算符=(1)

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

C++ STL中的unordered_multiset运算符=

在C++ STL中,unordered_multiset是一个关联容器,它存储元素不会进行排序,但与unordered_set不同的是,它允许存储相同的元素。

unordered_multiset的赋值运算符=用于将一个unordered_multiset赋值给另一个unordered_multiset。语法如下:

unordered_multiset& operator=(const unordered_multiset& ums);

其中,ums是要赋值的unordered_multiset。

该运算符将原有的元素清除,然后复制ums中的元素。复制后的元素将拥有与原有元素相同的哈希值和关键字相等的键。如果ums和被赋值的unordered_multiset是同一个,将不执行任何操作。

下面是一个示例程序:

#include <iostream>
#include <unordered_set>

int main() {
    // 创建unordered_multiset
    std::unordered_multiset<int> ums1 = {1, 2, 2, 3};
    std::unordered_multiset<int> ums2;

    // 使用赋值运算符将ums1赋值给ums2
    ums2 = ums1;

    // 输出ums1和ums2
    std::cout << "ums1:";
    for (int i : ums1) {
        std::cout << " " << i;
    }
    std::cout << std::endl;

    std::cout << "ums2:";
    for (int i : ums2) {
        std::cout << " " << i;
    }
    std::cout << std::endl;

    return 0;
}

输出结果为:

ums1: 1 2 2 3
ums2: 1 2 2 3

注意,这里的输出顺序与输入顺序不一定相同。unordered_multiset中的元素是无序的。

参考资料: