【发布时间】:2011-09-04 15:44:54
【问题描述】:
我想知道在哪种情况下我应该使用 unordered_map 而不是 std::map。
每次我不注意地图中元素的顺序时,我都必须使用 unorderd_map ?
【问题讨论】:
我想知道在哪种情况下我应该使用 unordered_map 而不是 std::map。
每次我不注意地图中元素的顺序时,我都必须使用 unorderd_map ?
【问题讨论】:
mapunordered_map【讨论】:
比较哈希表 (undorded_map) 与二叉树 (map),记住您的 CS 类并进行相应调整。
哈希映射在查找时通常有 O(1),映射有 O(logN)。如果您需要许多快速查找,这可能是一个真正的区别。
地图保持元素的顺序,这有时也很有用。
【讨论】:
map 允许以排序方式遍历元素,但unordered_map 不允许。
因此,当您需要按排序顺序遍历地图中的项目时,请使用std::map。
【讨论】:
您选择其中之一的原因是性能。否则他们只会创建std::map,因为它为你做的更多:)
当您需要对元素进行自动排序时,请使用std::map。其他时间使用std::unordered_map。
【讨论】:
unordered_map 是 O(1),但查找、插入和删除的持续开销相当高。 map 是 O(log(n)),因此请选择最适合您需求的复杂度。此外,并非所有的键都可以放入这两种映射中。
【讨论】: