首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

STL中地图的底层结构

2013-08-04 
STL中map的底层结构STL中map和set的标准底层结构是红黑树。为什么不用哈希表呢?STL[解决办法]RBT比Hash适用

STL中map的底层结构
STL中map和set的标准底层结构是红黑树。为什么不用哈希表呢? STL
[解决办法]
RBT比Hash适用范围更广,因为:
1:RBT可以查找范围(比如3与5之间的数据),而Hash只能进行等值查找
2:RBT的最差查找时间是O(LogN),而Hash的最差查找时间是O(N)
3:RBT的平均查找时间受数据变化的影响很小,而Hash的平均查找时间受数据变化的影响很大。
4:使用Hash需要使用大量的数据进行测试,以调整hash函数,减少冲突。

如果你不想在设计hash函数上花费精力的话,使用hash还不如使用map。其实Hash更适用于在相对固定的数据集中进行查找,这时可以精心设计一个冲突足够小的hash函数。

热点排行