在哪里实现哈希函数

Where to implement the hash function?

本文关键字:函数 哈希 实现 在哪里      更新时间:2023-10-16

我正在使用对象作为unordered_map中的键,因此我需要定义哈希函数。我的问题是,应实现哈希函数。我应该将其与类实施一起使用,或者应该将其实施到需要的位置。

更新:如果有所不同,所有这些都基于框架

如果您希望您需要在许多 unordered_map s中重复使用它,将其放置在班级中。

如果您只需要一次性的unordered_map,请将其靠近您使用的位置。您甚至可以使用lambda。

我将其放在类定义中,至少在使用 ==unordered_map中的平等函数。实施哈希功能取决于平等比较的实现,而且,保持两者兼而有之,以减少如果某人不更改哈希函数的可能性更改==

如果您还为地图定义了特殊的平等函数,则这两个函数应共同定义,可能接近它们将用于实例化地图。

在我看来,如果哈希函数是基本的,那么下方应该是类的方法,也应该是内联的。

int hashFunction(long x){
    return (int) (x % N);
}

如果它是更复杂的哈希函数,则应该是该类的方法。因为您需要一个" n",这将是该类别的spesific。