2012-01-22 99 views
1

请告诉我写作写作int hashkey= key%arraysize 从我的研究,我上面的例子应该只主阵列上进行的hashtable.i正在考虑何时计算一个整数的哈希键的最佳方式尺寸散列函数

+3

取决于int将包含的值的范围。在一般情况下,在模数运算之前乘以一个大的**奇**号将会给出足够的差值。 – wildplasser

回答

0

是的,你应选择一个素数作为数组大小,并使用值%arraysize作为散列键。

+0

你能证明这一点吗? –

+1

@Oli:我们有一个素数伏都教的例子。 – wildplasser

+0

我无法提供完美的理由,但这正是GCC的哈希表所做的。 – StilesCrisis

0

使用std hash.It更好。

std::size_t myHash = std::cout << std::hash<int>{}(myInt);