【发布时间】:2012-09-30 05:37:49
【问题描述】:
我知道提升存储桶在内部是作为点赞列表实现的,对吧?至少在http://www.boost.org/doc/libs/1_50_0/doc/html/unordered/buckets.html看来是这样的。
我的问题是,这些桶中元素的顺序是什么?如果它们是无序的,是否有任何方法可以对这些存储桶中的项目顺序强制执行 MRU(最近使用的)或其他一些向前移动的启发式方法?
编辑:我理解反对在存储桶内强制执行 MRU 的论点。但在我的具体情况下,我知道,执行 MRU [或什至具有后进先服务] 将优于负载因子较小的情况。问题是,顺序是什么?有没有一种简单的方法来强制执行至少后插入先出和服务。
【问题讨论】:
-
目标是使每个列表都变小,因此,MRU 会减慢它的速度。 boost.org/doc/libs/1_50_0/doc/html/unordered/rationale.html 也暗示有特殊的迭代器要求阻止它们重新排序节点。
标签: c++ performance boost hashmap unordered-map