admin管理员组文章数量:1122850
hash
hash_map哈希映照容器
一、原理
与map相似,都将记录型的元素分为键值和映照数据两个部分,插入元素不允许重复。不同之处是hash_map用哈希表实现,而map用红黑树;前者检索用迭代器遍历,后者用二分法。所使用的哈希函数对象和键值相等比较函数,默认为hash<key>和equal_to<key>。值插入,用insert_equal,值唯一,所以可以用[]操作符(同样,访问除了迭代器外,还可以用[])。
同样不是C++的标准容器,用STLport。
二、应用
hash_map<int,char*> hm;
hash_map<int,char*> hm(300);//389个元素
hash_map<int,char*,myhash> hm(300,myhash());//函数对象myhash(2)=x+2
hash_map<char*,int,hash<char*>,strequal>hm(300,hash<char*>(),strequal());//函数对象hash(char*),值比较函数strequal。
其它的插入,删除,查找,大小,访问,可以参看前几部分。
元素是否为带键值的记录型数据,是hash_map和hash_set的一个区别;使用的数据类型不同,是map和hash_map的一个区别。
本文标签: hash
版权声明:本文标题:hash 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/biancheng/1701490062a417088.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论