【发布时间】:2013-03-25 21:35:21
【问题描述】:
对于以下用例,我正在尝试在 map 和 unordered_map 之间进行选择:
map 的键是一个指针。
最常见的用例是地图中只有一个元素。
通常,地图中的最大元素数小于 10。
地图访问频率很高,速度是最重要的因素。很少更改地图。
虽然在这里测量速度显然是正确的方法,但此代码将在多个平台上使用,因此我试图创建一个通用的经验法则,用于根据元素数量在 map 和 unordered_map 之间进行选择.我在这里看到一些帖子暗示 std::map 对于少量元素可能更快,但没有给出“小”的定义。
对于何时根据元素数量在map 和unordered_map 之间进行选择,是否有经验法则?另一种数据结构(例如通过vector 进行线性搜索)是否更好?
【问题讨论】:
-
这种数据结构的性能是否如此重要,以至于您甚至需要关心您使用的是哪一种?
-
@KevinBallard 当您在内部循环中访问地图时,这可能很重要。
-
这个问题可能主要是出于好奇,而不是此时的真正需要。
-
我觉得对于