一、哈希表的定义
哈希表其实就是数据两个两个存进去,第一个数据叫做键,第二个数据叫做值,在查找的时候,通过键,就可以找到值。
这是因为键和值的存储地址存在某种关系,把键的地址通过某种操作就可以得到值的地址,从而得到值。
这个某种操作,就叫做哈希函数;多个键值对拼成一张表,就变成了一张散列表(哈希表)。
二、构建哈希表
构建哈希表,其实就是规定如何存储键和值,有五种方法。
1.直接定址法
2.除留余数法
3.数字分析法
4.平方取中法
5.折叠法
三、冲突
我们往哈希表里加入数据,小猫:20、小狗:30,我们想查找小狗的值是多少,结果输出了小狗:20,这个时候,就发生了冲突。
构建哈希表如果出现了冲突,那这个哈希表就是不合格的。我们要学会如何避免冲突,有5个方法。
1.线性探测法
2.二次探测法
3.随机探测法
4.再散列法
5.链地址法(拉链法)
具体如何实现我就不讲了,有兴趣的同学可以自己去了解一下哈,反正我暂时是没兴趣,我感觉学会STL库中的unordered_map容器的使用就可以了。