STL中的hashtable

来源:互联网 发布:数组splice 删除 编辑:程序博客网 时间:2024/06/07 00:59

一:hashtable概述

 1.它的节点是hash table node(并不是listNode)。

 2.表格用的是vector,其大小是28个指数中最接近所要求的数。

 3.用开链法。

 4.其迭代器没有减操作,也没有逆向迭代器。

 5.重建表格:当元素个数>hashtable表格的大小时要求重建表格,重建表格是要将每一个元素重新进行hash,然后再delete掉oldhashtable的所有元素。

 6.对于不是整形的键值要进行数值化(对应的ascll码)再进行hash。

 7.不能处理 string double float等类型。

二:hashtable_set

  1.用hashtable实现,因hashtable中实现了所以操作,所以hash_set直接调用hashtable的方法即可。

  2.与set不同的是,set用的是红黑树实现,且会自动排序,二hash_set不能。

三:hash_map

   1.hashtable中提供了hash_map的所有操作,所以直接调用hashtable的操作即可。

   2.与map的不同是map用红黑树实现可以自动排序,而hash_map不可。

四:hash_multiset

  1.与hash_set不同的是其调用的是hashtable的insert_equal()而hash_set调用的是insert_unique()这样就决定了hash_multiset可以有重复元素。

五:hash_multimap

   1.与同hash_set与hash_multiset的区别。

0 0
原创粉丝点击