STL中的hashtable

    xiaoxiao2021-03-25  87

    一: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的区别。

    转载请注明原文地址: https://ju.6miu.com/read-26295.html

    最新回复(0)