首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >什么时候应该使用unordered_map而不是std::map

什么时候应该使用unordered_map而不是std::map
EN

Stack Overflow用户
提问于 2011-05-30 16:18:41
回答 5查看 9.8K关注 0票数 15

我想知道在哪种情况下我应该使用unordered_map而不是std::map。

每次我不注意映射中元素的顺序时,我都要使用unorderd_map?

EN

回答 5

Stack Overflow用户

发布于 2011-05-30 16:39:59

map

通常使用red-black tree.

  • Elements实现的对数查找的内存使用量很小( hash-table).

  • Relatively快速查找不需要额外的内存:O(N)。

unordered_map

通常使用hash-table.

  • Elements实现的哈希表并不需要额外的内存来保存sorted.

  • Requires -
  1. 快速查找O(1),但恒定时间取决于可能相对较慢的hash-function。还请记住,您可能会遇到Birthday problem.
票数 23
EN

Stack Overflow用户

发布于 2011-05-30 16:30:14

将哈希表(undorded_map)与二叉树(map)进行比较,记住您的CS类并进行相应的调整。

散列映射的查找次数通常为O(1),查找次数为O(logN)。如果您需要许多快速查找,这可能是一个真正的差异。

映射保持元素的顺序,这有时也很有用。

票数 1
EN

Stack Overflow用户

发布于 2011-05-30 16:23:58

map允许以排序的方式遍历元素,但unordered_map不允许。

因此,当您需要按排序顺序遍历映射中的项时,请使用std::map

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6173860

复制
相关文章

相似问题

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