目录
哈希表的特征
哈希表一般是快速判断一个元素是否出现在集合里 。把值进行加工在哈希表中就叫做散列函数。
哈希表的遍历
for (auto i = hash.begin(); i != hash.end(); i++)
哈希表的查找
查找某个元素是否在哈希表中 ,可以使用**hash.find(x) != hash.end()
** ,或者**hash.count(x) > 0。
** 但是
h****ash.count(x) 的数值只能有
0和1,所以不能用它来表示x在hash中出现的次数。
哈希表的插入
在unordered_set 中插入元素,可以用**hash.insert(key)
** 。
在unordered_map 中插入元素,可以使用**hash[key] = value
**。
哈希表的删除
在unordered_set 跟unordered_map 中删除元素,都用hash.erase(key)。
但是在unordered_map 中,即使hash[key] == 0 ,如果之前已经将key存入到hash中,然后通过hash[key] -- 使得hash[key] == 0 ,hash 中还会存在key ,也就是说此时hash.count(key) == 1 。在个别场景下,可能需要一次性删除 unordered_map 容器中存储的所有键值对 ,可以使用clear()