参考回答:
hash表的实现主要包括构造哈希和处理哈希冲突两个方面:
(1) 对于构造哈希来说,主要包括直接地址法、平方取中法、除留余数法等。
(2) 对于处理哈希冲突来说,最常用的处理冲突的方法有开放定址法、再哈
希法、链地址法、建立公共溢出区等方法。SGL版本使用链地址法,使用一个
链表保持相同散列值的元素。虽然链地址法并不要求哈希桶长度必须为质数,
但SGI STL仍然以质数来设计哈希桶长度,并且将28个质数(逐渐呈现大约两
倍的关系)计算好,以备随时访问,同时提供一个函数,用来查询在这28个质
数之中,“最接近某数并大于某数”的质数。