在
std::unordered_set
中,第三个参数 KeyEqual
的目的是什么?哈希唯一性不足以满足吗?template<
class Key,
class Hash = std::hash<Key>,
class KeyEqual = std::equal_to<Key>,
class Allocator = std::allocator<Key>
> class unordered_set;
如果这个问题听起来很幼稚,我很抱歉。我正在从Python/PHP转移到C++ :)
目前我的KeyEqual
实现总是复制Hash
实现。所以我想知道我是否做得正确。
int
,而哈希函数是[](int i){ return i % 10; }
呢? - Ryan Hainingunordered_set
的文档有什么问题?前面的评论中提到哈希冲突是第一原因,但几乎所有的 STL 容器都允许自定义比较操作。如果您需要按照自己的方式比较键或者使用没有预先存在比较运算符的键类型,该怎么办呢? - mvidelgauz