【发布时间】:2021-01-05 16:17:20
【问题描述】:
我目前正在研究 C++ 中的数据结构和算法学期项目。我想实现一个哈希函数来使用他的名字(字符串)和他的电话号码(整数)访问一个人的数据。我还计划使用开放寻址处理冲突(如果此信息相关)。另外,我不允许使用任何 STL 库函数。
【问题讨论】:
-
boost有个方便的功能hash_combine,即使不能直接使用也可以随时捏源码。
-
你应该首先为一个字符串实现一个散列函数。一旦你有了它,就有几种可能的解决方案来散列多个值。
-
通用散列函数,可以散列任何字节数组,en.wikipedia.org/wiki/…。
-
您不是在询问“姓名+电话”的哈希值吗?你的意思是如果你只有名字或只有电话,你想在哈希表中查找,但不是两者都有,不是吗?如果我是对的,您可以从上面的 cmets 中看到,您需要通过 editing 来澄清您的问题。
-
你的两把钥匙其实就是一把钥匙。就像电话号码是一把钥匙一样,即使它有 10 位数字。好吧,即使它有两部分,您的钥匙也是一把钥匙。
标签: c++ hash-function