c++ - 告诉 std::unordered_map 哈希函数是完美的

标签 c++ std unordered-map

是否可以告诉 std::unordered_map 哈希函数是完美的?

因此,如果两个不同的键产生相同的哈希码,它们就会编辑相同的内存槽。

最佳答案

哈希函数完美还不够。生成不同散列值的值可能被映射到散列表中的同一槽。例如,容器的大小可能是 11,其中一个哈希值可以是 12,另一个可以是 23。假设容器使用模运算符来映射这些值,它们都将映射到槽号 1。因此,稍后您需要一种方法来区分它们。

关于c++ - 告诉 std::unordered_map 哈希函数是完美的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74115577/

相关文章:

c++ - 如何从 std vector 前面读取并删除读取变量?

c++ - 是否可以将 std::unordered_map<Class, Class> 作为 Class 的成员?

c++ - 解析编译错误 : no matching function for call to 'std::pair<,>::pair()'

c++ - 如何将A类型的数据写入B类型的格式

c++ - 无法从 std::basic_string 转换为 int Visual Studio C++

c++ - 在另一台计算机上运行使用 Visual Studio 构建的 EXE 文件的问题

c++ - 在与应用程序相同的窗口中显示 Qt 虚拟键盘

c++ - 将 vector 中的对象指针移动到不同的 vector

c++ - 在 C++ 中通过引用传递标准算法谓词

c++ - 使用 std::tuple 作为 std::unordered_map 的键