在哪里实现哈希函数
Where to implement the hash function?
我正在使用对象作为unordered_map
中的键,因此我需要定义哈希函数。我的问题是,应实现哈希函数。我应该将其与类实施一起使用,或者应该将其实施到需要的位置。
更新:如果有所不同,所有这些都基于框架
如果您希望您需要在许多 unordered_map
s中重复使用它,将其放置在班级中。
如果您只需要一次性的unordered_map
,请将其靠近您使用的位置。您甚至可以使用lambda。
我将其放在类定义中,至少在使用 ==
为unordered_map
中的平等函数。实施哈希功能取决于平等比较的实现,而且,保持两者兼而有之,以减少如果某人不更改哈希函数的可能性更改==
。
如果您还为地图定义了特殊的平等函数,则这两个函数应共同定义,可能接近它们将用于实例化地图。
在我看来,如果哈希函数是基本的,那么下方应该是类的方法,也应该是内联的。
int hashFunction(long x){
return (int) (x % N);
}
如果它是更复杂的哈希函数,则应该是该类的方法。因为您需要一个" n",这将是该类别的spesific。
相关文章:
- 如何为位集找到/实现一个好的哈希函数
- 对于短字符串来说,这是一个很好的哈希函数吗?
- 我在C++中使用提升哈希函数将 3 个双精度组合成一个面临冲突的哈希
- 无冲突的哈希函数
- 在 C++ 中为特定哈希表创建插入函数
- Qt5 哈希函数在 Windows 7 和 Windows10 上不会返回相同的哈希
- 解决由于在哈希函数中使用了不完整的类型而导致的编译失败
- 使用 Murmur2 64 位哈希函数生成会导致冲突的输入
- 错误:哈希函数必须可使用键类型的参数进行调用
- unordered_set是否适合存储矢量<int>元素的数据结构?如果是这样,我将如何实现哈希函数?
- 为什么C++哈希函数的返回类型是 std::size_t,而不是独立于平台的类型?
- 哈希函数计算
- 哈希函数中同一键的不同值和良好的哈希值排序
- 将 C# 哈希函数转换为C++
- 如何创建用于生成噪声的哈希函数
- 插入不从哈希函数中检索键
- 哈希<T>,更少的<T>函数:模板参数后的空括号
- 替代搜索函数和哈希向量<struct>C++
- 哈希表添加函数
- 完美的函数哈希函数生成器