当前位置: 首页 > news >正文

哈希表基础

常见的三种哈希结构:

数组:出现次数有限。

set(集合):输出结果中每一结果是唯一的。

map(映射):键值对。

没有限制数值的大小就不能使用哈希表。

如果哈希值比较少,特别分散,跨度非常大,使用数组会造成空间的极大浪费。

集合底层实现是否有序数值是否可以重复能否更改数值
std::set黑红树有序
std::multiset黑红树有序
std::unordereed_set哈希表无序

黑红树是一种平搜二叉搜索树,所以key的值是有序的,但key不能更改,改动会使整棵树错乱。所以只能删除和增加。

映射底层实现是否有序数值是否可以重复能否更改数值
std::map黑红树key有序key不可重复key不可修改
std::multimap黑红树key有序key可重复key不可修改
std::unordered_map哈希表key无序key不可重复key不可修改

总结:

1.当我们遇到了要快速判决一个元素是否出现在集合里的时候,就要考虑哈希法。

2.但是哈希法也是牺牲了空间换取了时间,因为我们要使用额外的数组,set或者是map来存放数据,才能实现快速的查找。

3.如果再做面试题的时候遇到要判断一个元素是否出现过的场景也应该第一时间想到哈希法。

相关文章:

  • Ollama 在本地分析文件夹中的文件
  • 本安型交换机 + TSN:煤矿智能化的关键拼图
  • AI大模型从0到1记录学习 linux day21
  • 【论文阅读】-周总结-第5周
  • IDEA中使用Git
  • Vue2、Vue3区别之响应式原理
  • 深入理解 Java 单例模式:从基础到最佳实践
  • 【项目篇之垃圾回收】仿照RabbitMQ模拟实现消息队列
  • 查回来的数据除了 id,其他字段都是 null
  • 自然语言处理之机器翻译:注意力机制在低资源翻译中的突破与哲思
  • LeetCode每日一题4.27
  • 【dockerredis】用docker容器运行单机redis
  • C#中属性和字段的区别
  • pytorch搭建并训练神经网络
  • Golang 遇见 Kubernetes:云原生开发的完美结合
  • MPI Code for Ghost Data Exchange in 3D Domain Decomposition with Multi-GPUs
  • 20250427 对话1: 何东山的宇宙起源理论
  • vscode eslint与vue-official冲突,导致点击的时候鼠标不会变成手型,一直在加载,但是不转到相应方法。
  • vue2 项目的 vscode 插件整理
  • Marmoset Toolbag 5.0 中文汉化版 八猴软件中文汉化版 免费下载
  • 美国清洗政治:一幅残酷新世界的蓝图正在展开
  • TCL科技一季度净利增超三倍,去年半导体显示业务营收创新高
  • 演员刘美含二手集市被曝售假,本人道歉
  • “自己生病却让别人吃药”——抹黑中国经济解决不了美国自身问题
  • 上海通报5起违反中央八项规定精神问题
  • 中国纪检监察报刊文:要让劳动最光荣成为社会的崇高风尚