哈希表学习笔记

目录

哈希表的特征

哈希表的遍历

哈希表的查找

哈希表的插入

哈希表的删除


哈希表的特征

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

哈希表的遍历

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 中,即使hashkey == 0 ,如果之前已经将key存入到hash中,然后通过hashkey -- 使得hashkey == 0 ,hash 中还会存在key ,也就是说此时hash.count(key) == 1 。在个别场景下,可能需要一次性删除 unordered_map 容器中存储的所有键值对 ,可以使用clear()

相关推荐
Rabitebla3 小时前
【Linux】进程控制(十二) 自定义 Shell(二):内建命令与进程工作目录管理
linux·c++·笔记·学习·bash
Gary移动存储固件4 小时前
eMMC5.1协议中文学习讲解(6.6.17~6.6.22.4.6)
学习·ufs·emmc·nand·存储固件
一个天蝎座 白勺 程序猿4 小时前
别让收藏夹替你学习:我搭AI知识体系的完整方法,脚本直接拿去用
人工智能·学习·ai·ai学习
楚山之石5 小时前
【Nat Biomed Eng】Connectome 2.0 超高梯度扫描仪:500 mT/m 与 600 T/m/s 把活体人脑微观结构分辨推进到亚微米级
图像处理·学习·数据分析·mri
坤坤子吖7 小时前
Linux网络编程:TCP 粘包与半包问题,如何正确处理 TCP 流式数据?
linux·服务器·网络·笔记·网络协议·学习
YLCHUP11 小时前
【思维&图论建模】题解:债权(debt)_图论_建模_思路转化_思维题目_C++算法竞赛
c++·笔记·算法·数学建模·贪心算法·深度优先·图论
LGL6030A12 小时前
Java学习历程31——初识Spring Boot
java·spring boot·学习
阿达和自己13 小时前
springboot学习-springboot引入MyBatis-Plus
spring boot·学习·mybatis
旖旎夜光13 小时前
【C++ 基础入门】C++11 新特性(中):右值引用、移动语义与完美转发
开发语言·c++·笔记·学习
星恒随风1 天前
MySQL 从零入门(五):MySQL 内置函数详解——日期、字符串、数学函数与实战案例
linux·数据库·笔记·sql·mysql