在C++中,unordered_set
是一种哈希表实现的关联容器,用于存储唯一的元素。在声明unordered_set
时,可以自定义哈希函数和相等性比较函数。
首先,需要包含unordered_set
头文件:
#include <unordered_set>
然后,定义哈希函数和相等性比较函数。例如,对于整数类型的unordered_set
,可以定义如下:
struct IntHash {
std::size_t operator()(int k) const {
return std::hash<int>()(k);
}
};
struct IntEqual {
bool operator()(int lhs, int rhs) const {
return lhs == rhs;
}
};
最后,声明unordered_set
时使用这些函数对象:
std::unordered_set<int, IntHash, IntEqual> my_set;
在这个例子中,IntHash
函数对象用于计算元素的哈希值,IntEqual
函数对象用于比较元素是否相等。
需要注意的是,自定义哈希函数和相等性比较函数时,应该遵循以下原则:
true
,否则返回false
。总之,在C++中声明unordered_set
时,可以通过自定义哈希函数和相等性比较函数来实现更高效的存储和查找。
领取专属 10元无门槛券
手把手带您无忧上云