c – 在std :: map和std :: unordered_map 之间选择
作者:互联网
参见英文答案 > Is there any advantage of using map over unordered_map in case of trivial keys? 12个
既然std在unordered_map中有一个真正的哈希映射,为什么(或者什么时候)我还想在实际存在的系统上使用unordered_map上的旧映射?是否有任何我无法立即看到的明显情况?
解决方法:
作为already mentioned,map允许以排序方式迭代元素,但unordered_map不允许.这在许多情况下非常重要,例如显示集合(例如地址簿).这也体现在其他间接方式中:(1)从find()返回的迭代器开始迭代,或者(2)存在成员函数,如lower_bound().
此外,我认为在最坏情况搜索复杂性方面存在一些差异.
>对于地图,它是O(lg N)
>对于unordered_map,它是O(N)[当哈希函数不好导致太多哈希冲突时,可能会发生这种情况.
这同样适用于最坏情况删除复杂性.
标签:unordered-map,c,c11,hash,map 来源: https://codeday.me/bug/20190917/1809679.html