📌  相关文章
📜  unordered_multiset及其用法(1)

📅  最后修改于: 2023-12-03 15:20:54.384000             🧑  作者: Mango

unordered_multiset及其用法

unordered_multiset是C++ STL中的一种关联容器,它存储一组元素,元素的值可以重复,并且不按任何特定顺序排序。与其它容器不同的是,unordered_multiset不支持对元素的访问和查找操作。

头文件

unordered_multiset位于头文件<unordered_set>中。

#include <unordered_set>
定义和初始化

unordered_multiset可以使用以下方法进行定义和初始化:

std::unordered_multiset<int> mySet;             //空容器
std::unordered_multiset<std::string> mySet;     //空容器

std::unordered_multiset<int> mySet { 1, 2, 3 }; //通过初始化列表初始化
插入元素

使用insert()方法可以向unordered_multiset中插入元素:

std::unordered_multiset<int> mySet;
mySet.insert(1);
mySet.insert(2);
mySet.insert(2);
mySet.insert(3);
删除元素

可以使用erase()方法删除unordered_multiset中的元素:

mySet.erase(2);        //删除值为2的元素
mySet.erase(mySet.begin());   //删除第一个元素
mySet.clear();         //清空容器中的所有元素
遍历unordered_multiset

可以使用for循环和iterator等方式遍历unordered_multiset中的元素:

std::unordered_multiset<int> mySet { 1, 2, 3 };
for (auto i : mySet) {
    std::cout << i << " ";
}

输出结果:

3 1 2
常用操作

unordered_multiset中常用的一些操作如下表所示:

| 操作 | 描述 | | --------------------|---------------------------------------------------| | insert(x) | 向容器中插入一个元素 | | erase(x) | 删除容器中值为x的元素 | | clear() | 清空容器中的所有元素 | | count(x) | 统计值为x的元素在容器中出现的次数 | | size() | 返回容器中元素的数量 | | find(x) | 返回第一个值为x的元素的迭代器,如果没有则返回end() | | begin() | 返回指向容器中第一个元素的迭代器 | | end() | 返回指向容器中最后一个元素之后的迭代器 |

总结

unordered_multiset是C++ STL中的一种关联容器,它可以存储一组元素,元素的值可以重复,并且不按任何特定顺序排序。该容器不支持对元素的访问和查找操作。在使用unordered_multiset时,需要注意遍历容器时元素的顺序是不确定的。