首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带int键的unordered_map向量与向量

带int键的unordered_map向量与向量
EN

Stack Overflow用户
提问于 2019-11-28 12:51:53
回答 2查看 1.3K关注 0票数 2

当键是整数时,使用std::unordered_mapstd::vector的性能有什么不同。我有大约100到1000个元素,它们具有连续的I,我可以使用它们来访问向量。使用哈希表的原因是更方便地按对象本身进行索引。

想象一下三种不同的情况:

intensive

  • Balanced

  • Read

请注意,我问它是一个一般性的问题,不是一个特定于代码的问题。

EN

Stack Overflow用户

发布于 2019-11-28 13:40:21

一般情况:

由于缺乏间接方向,矢量具有更好的缓存一致性。访问索引更快,因为不需要计算散列函数。迭代有可预测的分支。

无序映射使用稀疏结构的内存更少(您说过索引是连续的,所以这个优势不适用于您)。使用无序映射,在任意索引中添加或删除元素的速度要快得多。

当只有非常少的元素(如100-1000 )时,渐近复杂性并不一定重要。在这种情况下,缓存一致性和分支预测往往占主导地位。

首先选择哪个数据结构更方便。然后评估访问该结构是否会对整个程序的性能产生重大影响。如果是的话,那么与其他数据结构度量差异,看看它是否显着地更快(相对于测量的方差)。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59089346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档