📅  最后修改于: 2023-12-03 15:20:54.384000             🧑  作者: Mango
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(); //清空容器中的所有元素
可以使用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
时,需要注意遍历容器时元素的顺序是不确定的。