C++ unordered_map map

哈希map是一种关联容器,允许根据键值快速检索各个元素。

在内部unordered_map的元素不以键值或映射的元素作任何特定的顺序排序,其存储位置取决于哈希值允许直接通过其键值为快速访问单个元素(具有恒定平均的平均时间复杂度)。

哈希map允许使用操作运算符(运算符[])以其键值作为参数直接访问元素。

 

map按照operator<比较判断元素是否相同,以及比较元素的大小,然后选择合适的位置插入到树中。所以,如果对map进行遍历(中序遍历)的话,输出的结果是有序的。顺序就是按照operator< 定义的大小排序。

 

任何情况下,如果要在这两个容器之间选择的话,我们毫不犹豫应该选择 unordered_map。因为他的性能在插入、查找、遍历、删除操作中均优于 hash_map,甚至可以说远远优于 hash_map。

当我们需要一个有序的关联容器的时候,我们必须选择std::map

posted @ 2015-03-28 09:14  现役程序猿  阅读(373)  评论(0编辑  收藏  举报