使用字符串类型的键存储散列值的最佳结构

时间:2012-02-10 15:17:03

标签: c++ hash key varchar lookup-tables

我是哈希领域的初学者。我正在编写一个索引字符串键的程序。为此,我散列我的varachar(512)键的前3个字符,然后以数字形式获取散列值。我打算使用该数值索引我的数据。我允许发生冲突,即如果两个字符串的前三个字符相同,那么它们可能具有相同的哈希值。

现在,如果某些查询要查找特定的字符串键,我将首先对其进行哈希处理,并在查找表中查找其哈希值是什么。

我是否需要为此目的存储查找表?或者我可以动态计算它的哈希值,然后执行搜索?

如果是,如果我们将性能和优化作为主要标准,那么哪种结构会很好,我使用的是C ++。

谢谢!

1 个答案:

答案 0 :(得分:2)

STL已经有unordered_map,你可以将它与用户定义的类型和自定义哈希函数一起使用。