哈希表学习笔记

目录

哈希表的特征

哈希表的遍历

哈希表的查找

哈希表的插入

哈希表的删除


哈希表的特征

哈希表一般是快速判断一个元素是否出现在集合里 。把值进行加工在哈希表中就叫做散列函数。

哈希表的遍历

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_setunordered_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()

相关推荐
云上艺旅15 小时前
K8S学习之基础七十四:部署在线书店bookinfo
学习·云原生·容器·kubernetes
你觉得20515 小时前
哈尔滨工业大学DeepSeek公开课:探索大模型原理、技术与应用从GPT到DeepSeek|附视频与讲义下载方法
大数据·人工智能·python·gpt·学习·机器学习·aigc
A旧城以西17 小时前
数据结构(JAVA)单向,双向链表
java·开发语言·数据结构·学习·链表·intellij-idea·idea
无所谓จุ๊บ17 小时前
VTK知识学习(50)- 交互与Widget(一)
学习·vtk
FAREWELL0007517 小时前
C#核心学习(七)面向对象--封装(6)C#中的拓展方法与运算符重载: 让代码更“聪明”的魔法
学习·c#·面向对象·运算符重载·oop·拓展方法
吴梓穆17 小时前
UE5学习笔记 FPS游戏制作38 继承标准UI
笔记·学习·ue5
Three~stone18 小时前
MySQL学习集--DDL
数据库·sql·学习
齐尹秦18 小时前
HTML 音频(Audio)学习笔记
学习
V---scwantop---信18 小时前
英文字体:大胆都市街头Y2Y涂鸦风格品牌海报专辑封面服装字体 Chrome TM – Graffiti Font
笔记·字体
瞌睡不来18 小时前
(学习总结32)Linux 基础 IO
linux·学习·io