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

标签 c++ hash key varchar lookup-tables

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

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

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

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

谢谢!

最佳答案

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

关于c++ - 使用字符串类型的键存储散列值的最佳结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9229995/

相关文章:

arrays - Perl - 有效区分超大数组的最佳实践

PHP:找到常见的重复字符串?

java - 如果相同的盐用于唯一的输入,哈希算法是否能保证唯一的输出?

mysql - 有没有办法将 sha256 转换为 md5 哈希

arrays - ruby - 在 ruby​​ 中将多个哈希插入数组

python - SPSS/Python - 访问变量标签

c++ - 解决 C++ 名称冲突

c++ - 如何用 C++ 计算一个简单句子中的单词和数字

c++ - 将对象从堆栈移动到数组 C++

C++ 线程安全 : If only one thread can write to a non-atomic variable but multiple threads read from it.。可以遇到问题吗?