哈希map是一种关联容器,允许根据键值快速检索各个元素。
在内部unordered_map的元素不以键值或映射的元素作任何特定的顺序排序,其存储位置取决于哈希值允许直接通过其键值为快速访问单个元素(具有恒定平均的平均时间复杂度)。
哈希map允许使用操作运算符(运算符[])以其键值作为参数直接访问元素。
map按照operator<比较判断元素是否相同,以及比较元素的大小,然后选择合适的位置插入到树中。所以,如果对map进行遍历(中序遍历)的话,输出的结果是有序的。顺序就是按照operator< 定义的大小排序。
任何情况下,如果要在这两个容器之间选择的话,我们毫不犹豫应该选择 unordered_map。因为他的性能在上述4中操作中均优于 hash_map,甚至可以说远远优于 hash_map。
当我们需要一个有序的关联容器的时候,我们必须选择std::map
原文:http://www.cnblogs.com/qingmuyunlin/p/4373611.html