【发布时间】:2021-06-04 20:42:04
【问题描述】:
我不太清楚标准的std::unordered_map 容器如何使用散列。
我对哈希很陌生,现在我正在努力通过我的大学数据结构考试。
我知道,如果我有一个对象集合,我必须按照标准将它们的键尽可能随机分组,以便它们尽可能均匀地分布在某些存储桶中,然后我可以不断地搜索/插入/删除时间通过查看与散列键关联的存储桶(这主要是链式散列所做的,如果我错了,请纠正我)。
但是,std::unordered_map 如何使用散列?它如何使用散列设置一个新的(键,值)对?我的意思是,我知道散列会根据某些标准对键进行分组,但完全不清楚它是如何使用散列设置新的(键、值)对的。
【问题讨论】:
-
您在编译器的包含目录中有完整的源代码。在 VC++ 的情况下,算法在
中注意“值”不参与哈希——只有“键”重要。