c++ - 字符串的独特性质构建高效的哈希表

标签 c++ string hash hash-function

C++中字符串的独特属性是什么?为什么它们可以通过关系运算符进行比较(例如,当试图按字母顺序对字符串数组进行排序时)?我试图利用这个“属性”来为一个表构建一个很好的散列函数,每个可能的字符串都不会发生冲突。另外,什么数据结构适用于此?我在考虑一个 vector ,因为我将不得不在不知道其中有多少个唯一单词的情况下浏览一个文档,而我只想浏览一次文档。

最佳答案

C++ 标准字符串本质上是字符 vector 。因此,比较字符串意味着从头开始逐个字符地比较它们。 我不确定你所说的“独特属性”是什么意思,但对于你的用例,任何哈希算法都应该这样做。 如果我正确理解你的用例,你可能想使用 std::set< YourHashType > 或 std::map。这样您就不必费心去查明是否已经添加了一个词。

关于c++ - 字符串的独特性质构建高效的哈希表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33942480/

相关文章:

c++ - 根据模板参数更改属性访问

python - 可变的用户定义类型和集

c# - C#中如何删除一个单词的某些字符

swift - 如何将字符串格式更改为缩写?

python - Python 3 中的 string.lower

java - ManyToMany *set* 的最佳表结构

perl - 检查 Perl 哈希键的真实性还是存在性更好?

c++ - 导致段错误的独立列表之间的插入/删除语句的顺序

c++ - 全局结构分配给出名称类型错误

C++:计算给定范围内可能的浮点值的数量