std::unordered_set 的使用方法
std::unordered_set 是 C++ STL 库中的一个容器,它提供了一种无序集合的实现方式。它基于哈希表(hash table)来存储元素,并且具有常数时间的插入、删除和查找操作。
以下是 std::unordered_set 的一些常见用法:
- 声明和定义
#include <unordered_set>
std::unordered_set<int> myset; // 创建一个空的 unordered_set
- 插入元素
myset.insert(42); // 插入一个元素
myset.insert({1, 2, 3, 4}); // 插入多个元素
- 删除元素
myset.erase(42); // 删除一个元素
myset.erase(myset.find(3), myset.end()); // 删除指定范围的元素
myset.clear(); // 删除所有元素
- 查找元素
if (myset.find(42) != myset.end()) {
// 找到了 42
}
- 遍历元素
for (auto it = myset.begin(); it != myset.end(); ++it) {
// 遍历 unordered_set
}
- 获取 unordered_set 的大小
std::size_t size = myset.size();
- 判断 unordered_set 是否为空
if (myset.empty()) {
// unordered_set 为空
}
- 使用自定义哈希函数和相等比较函数
struct MyHash {
std::size_t operator()(const MyType& val) const {
// 自定义哈希函数的实现
}
};
struct MyEqual {
bool operator()(const MyType& lhs, const MyType& rhs) const {
// 自定义相等比较函数的实现
}
};
std::unordered_set<MyType, MyHash, MyEqual> myset;
以上就是 std::unordered_set 的一些基本用法,可以根据具体需求进行灵活运用。