std::unordered_multiset
是 C++ 标准模板库中的一种无序容器,它允许存储相同键的多个副本,并提供高效的插入、查找和删除操作。以下是 std::unordered_multiset
的用法总结:
包含头文件:
#include <unordered_set>
创建 std::unordered_multiset
对象:
std::unordered_multiset<ValueType> myUnorderedMultiset;
ValueType
是集合中元素的类型。
插入元素:
myUnorderedMultiset.insert(value);
删除元素:
myUnorderedMultiset.erase(value);
遍历 std::unordered_multiset
:
for (const auto& element : myUnorderedMultiset) {
// 处理每个元素
}
查找元素:
auto it = myUnorderedMultiset.find(value);
if (it != myUnorderedMultiset.end()) {
// 元素找到
} else {
// 元素未找到
// 处理不存在的情况
}
获取元素数量:
size_t count = myUnorderedMultiset.count(value);
获取 std::unordered_multiset
的大小:
size_t size = myUnorderedMultiset.size();
注意事项:
std::unordered_multiset
是无序的,插入的元素的顺序不一定与插入的顺序相同。- 允许存储相同的元素,即允许重复元素。
示例:
#include <iostream>
#include <unordered_set>
int main() {
std::unordered_multiset<int> myUnorderedMultiset;
// 插入元素
myUnorderedMultiset.insert(10);
myUnorderedMultiset.insert(20);
myUnorderedMultiset.insert(30);
myUnorderedMultiset.insert(20);
// 遍历 unordered_multiset
for (const auto& element : myUnorderedMultiset) {
std::cout << element << " ";
}
std::cout << std::endl;
// 查找元素
auto it = myUnorderedMultiset.find(20);
if (it != myUnorderedMultiset.end()) {
std::cout << "Element 20 found." << std::endl;
} else {
std::cout << "Element 20 not found." << std::endl;
}
// 获取元素数量
size_t count = myUnorderedMultiset.count(20);
std::cout << "Number of occurrences of 20: " << count << std::endl;
return 0;
}