Hash...

原创 2012年03月26日 17:38:39

 

hash_set/hash_map/hash_multiset/hash_multimap

    hash_set/hash_map,两者的一切操作都是基于hashtable之上。不同的是,hash_set同set一样,同时拥有实值和键值,且实质就是键值,键值就是实值,而hash_map同map一样,每一个元素同时拥有一个实值(value)和一个键值(key),所以其使用方式,和上面的map基本相同。但由于hash_set/hash_map都是基于hashtable之上,所以不具备自动排序功能。为什么?因为hashtable没有自动排序功能。
    至于hash_multiset/hash_multimap的特性与上面的multiset/multimap完全相同,唯一的差别就是它们的底层实现机制是hashtable,所以它们的元素都不会被自动排序,不过也都允许键值重复。

    所以,综上,说白了,什么样的结构决定其什么样的性质,因为set/map/multiset/multimap都是基于RB-tree之上,所以有自动排序功能,而hash_set/hash_map/hash_multiset/hash_multimap都是基于hashtable之上,所以不含有自动排序功能,至于加个前缀multi_无非就是允许键值重复而已关于红黑树,请参看blog内系列文章:http://blog.csdn.net/v_july_v/article/category/774945,关于hash_map的具体使用,可看看此篇文章:http://blog.csdn.net/sdhongjun/article/details/4517325

 

 

 

 

内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hash...
举报原因:
原因补充:

(最多只允许输入30个字)