哈希表
哈希表相关的一些笔记
哈希表
哈希表是根据关键码的值来直接进行访问的数据结构。
哈希表中关键码就是数组的索引下标,然后通过下标直接访问数组中的元素,可以快速判断一个元素是否出现在集合里。
哈希函数
把数据映射为索引,对数值取模保证一定映射到哈希表。
哈希碰撞
映射到同一下标的解决方法。
拉链法:发生冲突的元素储存在链表中。
线性探测法:要保证空间比数据大,向下找空置位置放置冲突元素。
常用的哈希结构
数组
集合set:不可更改数值
set:红黑树实现,有序,数值不重复
multiset:红黑树实现,有序,数值可重复
unordered_set:哈希表实现,无序,数值不可重复
使用集合解决哈希问题时优先用unordered_set,需要有序则用set,有序且重复用multiset
映射map
map:红黑树实现,key有序不可重复不可修改
multimap:红黑树实现,key有序可重复不可修改
unodered_map:哈希表实现,key无序不可重复不可修改
判断一个元素是否出现过的场景应该使用哈希法。