STL中map与hash_map的比较
2014-06-18 11:10
288 查看
1. map :
C++的STL中map是使用树来做查找算法; 时间复杂度:O(log2N)
2. hash_map :
使用hash表来排列配对,hash表是使用关键字来计算表位置; 时间复杂度:O(1), 最坏的时间复杂度:O(n)
总体来说:hash_map 比 map 查找速度快,而且查找速度基本和数据量大小无关,属于常数级别,节省一定内存,如果没有必要排序的话,尽量使用 hash_map 。
注:hash还有hash函数的耗时。当有100w条记录的时候,map也只需要20次的比较,200w也只需要21次的比较!所以并不一定常数就比log(n) ;用map,还是hash_map,从3个方面来权衡: 查找速度,数据量, 内存使用,还有一个就是你的经验!没有特别的标准
C++的STL中map是使用树来做查找算法; 时间复杂度:O(log2N)
2. hash_map :
使用hash表来排列配对,hash表是使用关键字来计算表位置; 时间复杂度:O(1), 最坏的时间复杂度:O(n)
总体来说:hash_map 比 map 查找速度快,而且查找速度基本和数据量大小无关,属于常数级别,节省一定内存,如果没有必要排序的话,尽量使用 hash_map 。
注:hash还有hash函数的耗时。当有100w条记录的时候,map也只需要20次的比较,200w也只需要21次的比较!所以并不一定常数就比log(n) ;用map,还是hash_map,从3个方面来权衡: 查找速度,数据量, 内存使用,还有一个就是你的经验!没有特别的标准
相关文章推荐
- (zt)STL中的map与hash_map
- 【C++】STL的hash_map
- STL容器之map与hash_map
- C++中的unordered_map,以及与STL中的map的比较
- 详细解说STL hash_map系列
- STL hash_map 详解
- C++ STL中哈希表Map 与 hash_map 介绍
- STL中map与hash_map容器的选择收藏
- C++ STL中哈希表 hash_map介绍
- C++ STL中 hash_map详细介绍
- C++ STL hash_map
- 详细解说STL hash_map系列
- C++ STL学习笔记十二 hash_map映照容器
- STL hash_map使用
- STL学习——hash_set/hash_map/hash_multiset/hash_multimap篇
- STL之红黑树容器:set,hash_set,multiset,hash_map,multimap
- Linux下map hash_map和unordered_map效率比较
- STL hash_map使用
- stl_hash_map.h
- linux下使用hash_map及STL总结