Ada*_*m S 5 c++ hash hashtable
我理解哈希表的数学基础.我有一个哈希函数(我发现在某处)下面:
/* Fowler / Noll / Vo (FNV) Hash */
static const size_t InitialFNV = 2166136261U;
static const size_t FNVMultiple = 16777619;
size_t myhash(const string &s, int length)
{
size_t hash = InitialFNV;
for(size_t i = 0; i < length; i++)
{
//XOR the lower 8 bits
hash = hash ^ (s[i]);
//Multiply by the multiple
hash = hash * FNVMultiple;
}
return hash;
}
Run Code Online (Sandbox Code Playgroud)
size_t?store()将字符串放在哈希表中的函数?for用一个while终止于'\0'字符的循环替换循环是否合适?仅供参考,我正在研究第二次面试,这就是我要问的原因.
它返回,size_t因为这是本机整数(也是最快的)。为什么选择其他东西?
“桌子”?哪张桌子?如果您指的是哈希表,那么您可以使用返回值来选择一个随机存储桶来放入对象。(提示:想想“余数”。)
不是已经适应数组了吗?
如果它是一个以空结尾的字符串,为什么不呢?
| 归档时间: |
|
| 查看次数: |
2186 次 |
| 最近记录: |