hash_map哈希映照容器

hash_map哈希映照容器

一、原理

与map相似,都将记录型的元素分为键值和映照数据两个部分,插入元素不允许重复。不同之处是hash_map用哈希表实现,而map用红黑树;前者检索用迭代器遍历,后者用二分法。所使用的哈希函数对象和键值相等比较函数,默认为hash和equal_to。值插入,用insert_equal,值唯一,所以可以用[]操作符(同样,访问除了迭代器外,还可以用[])。

同样不是C++的标准容器,用STLport。

二、应用

hash_map hm;

hash_map hm(300);//389个元素

hash_map hm(300,myhash());//函数对象myhash(2)=x+2

hash_map,strequal>hm(300,hash(),strequal());//函数对象hash(char*),值比较函数strequal。

    其它的插入,删除,查找,大小,访问,可以参看前几部分。

    元素是否为带键值的记录型数据,是hash_map和hash_set的一个区别;使用的数据类型不同,是map和hash_map的一个区别。

你可能感兴趣的:(c++语言)