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

stl的map到底是一个树,还是一个哈希表?该怎么解决

2012-03-14 
stl的map到底是一个树,还是一个哈希表?网上说map是一个红黑树,也有人说是一个hash表。它在stl里面的实现,到

stl的map到底是一个树,还是一个哈希表?
网上说map是一个红黑树,也有人说是一个hash表。

它在stl里面的实现,到底有没有说是一个什么样子的东西? 红黑树也是一种哈希表么?

[解决办法]
据说是红黑树,红黑树不是hash,一般来说红黑树需要的存储空间比hash要小,效率要差
[解决办法]
标准模板库中的map是红黑树实现的;
不过STL中也有hash_map, 这个是用hash做的, 虽然hash_map目前并没有纳入C++标准模板库中, 但几乎每个版本的STL都提供了相应的实现, 而且应用十分广泛.
[解决办法]
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的.

热点排行