map比起unordered_map的优势主要有(hashmap就是unordered_map)

hashmap有unordered_map,map其实就是很明确的红黑树。map比起unordered_map的优势主要有:

  1. map始终保证遍历的时候是按key的大小顺序的,这是一个主要的功能上的差异
  2. map可以做范围查找,而unordered_map不可以。
  3. map的iterator除非指向元素被删除,否则永远不会失效。unordered_map的iterator在对unordered_map修改时有时会失效。
  4. 因为3,所以对map的遍历可以和修改map在一定程度上并行(一定程度上的不一致通常可以接受),而对unordered_map的遍历必须防止修改
  5. map的iterator可以双向遍历,这样可以很容易查找到当前map中刚好大于这个key的值,或者刚好小于这个key的值

这些都是map特有而unordered_map不具备的功能。



作者:灵剑
链接:https://www.zhihu.com/question/24506208/answer/540227289
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 
原文地址:https://www.cnblogs.com/findumars/p/14410223.html