c++ - Hashmaps:节点图和平面图有什么区别?
问题描述
有哪些不同类型的哈希表以及它们之间的区别?
我经常看到对“节点图”和“平面图”类型的引用。Abseil 库有这两种实现,但没有解释不同的用例是什么,谷歌搜索也没有显示任何描述。
解决方案
Tip #136很好地解释了它。
简而言之:Abseil 平面地图有一个桶数组,直接存储地图条目。节点映射存储指向映射条目的指针。(这两种类型显然都使用开放寻址策略。)值得注意的是,在平面地图中,即使是空桶也会占用空间。在节点映射中,它们只占用一个指针的内存。
最后,请注意,“平面映射”一词,尤其是在 C++ 世界之外,通常保留用于收集将函数应用于子序列的每个元素的结果的函数,这是一个非常不同的含义。
推荐阅读
- r - R - 如何用长数据平均 ID 内的每 n 行?
- c# - 需要调用 Application.Exit() 两次
- python - Python Pandas 内存丢失
- c# - Protobuf-net 和 StringValue 类型
- python - Sagemaker Blazingtext .content_type = 'application/json' AttributeError: 无法设置属性
- winapi - CopyFileEx 的 pbCancel 参数如何安全?
- c# - 更新时的 rb.velocity 很奇怪(初学者问题)
- azure - 如何配置 Azure Maps 室内模块图标?
- python - python - 如何比较两列并获取python pandas数据框中两者中所有匹配项的第三列的平均值?
- python - 在 Python 中动态创建列表的最佳方法是什么?