(1)首先是map与unordered_map的有序性和无序性的区别。map的存储顺序是按键值大小顺序存储,unordered_map:是按照存储的先后顺序进行存储。主要原因时其底部实现原理不同,map底层实现是红黑树,unordered_map底层实现是hash表。
在操作时只有通过迭代器索引能看出顺序区别。如下图所示
(2)map的第一个键值可以映射更多的数据类型,也就是说map不仅仅可以通过索引查找,还可以通过其他数据结构,如容器。而unordered_map只能通过数值索引。
总结:
unordered_map的查找效率比较高,如果仅仅是需要实现查询功能建议用unordered_map
如果需要查找的数据类型是容器就只能用map。