news 2026/5/12 13:16:19

29.哈希(上)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
29.哈希(上)

插入的key已经有了,就返回false,没有就true,

改造一下:也可以

自己走隐式类型转换,构造iteraator要用当前节点和 根节点指针

相等了就插入失败,返回相等的

这里也是插入成功,返回新插入的节点,新节点不能用current,因为父亲叔叔 红的要变色连续往上处理,所以

newnode记录一下,不然current连续变色处理,不一定是新节点,neewnode记录新节点就行

这些地方就都得跟着改

库里set这里iterator用的const iterator支持这个地方就会有坑,因为 底层是普通迭代器,就得支持腹痛迭代器到const 迭代器的转换。

然后搭operator【】:

注意两个pair,

可以继续加拷贝析构

哈希

两个容器C++11的

因为set底层是搜索树,所以是有序地,而undersort是无序的,

去掉unorder就是有序,

怎么去重 如果有了就插入不就去了

哈希更快,绝多数场景可以用unorder set 和unordermap

数据有序情况:

有序用 map set 其余情况可以用 unorderset unordermap

降序可以给greater仿函数,里面用一个仿函数,换参数位置就可以实现大于小于,

比如说计数排序,

数据比较分散就不行,适合数据范围比较集中的整形,

假设32个位,模后十个位,前22个位想不想同不重要,后十个值相同摸出来都是一样的,尽可能要避免2的次方。取13就很好

前面都是零后面16位都是1,可与 就取后16位了。但是后16位相同的值不就冲突了, 就把前16位取出来给给key'然后两个异或

这样写很好,很活

但是这里真正问题是后16位相同就都冲突了,前面的位没参与,尽可能让更多位参与运算就可以了,位不同参与运算的结果就更分散,

此时这个值就不是只有后16位参与运算了就打破了只用2的x次方。

总结:第一种

第二种:就取2的x次方也没问题,尽可能让所有位参与运算。两个不同值运算结果更有可能不一样,哈希函数是减小冲突,概率降低了很多很多。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/11 2:20:12

毕设项目分享 深度学习驾驶行为识别系统(源码+论文)

文章目录 0 前言1 项目运行效果2 设计概要3 相关技术3.1 Dlib3.2 疲劳检测算法3.3 YOLOV5算法 4 最后 0 前言 🔥这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两…

作者头像 李华
网站建设 2026/5/11 2:20:08

星轨织纸页,粒子入刊行|物理人专属期刊指南

ISSN印刷版:3078-9451ISSN在线版:无影响因子:0.816研究领域:物理 出版模式:开放获取(OA)出版周期:1-2个月出刊检索版面要求:5000-12000字符/篇期刊收录:维普VIP 投稿链接:https://guojiqikan.com/推荐码:WQY-06ISSN印刷版:2616-…

作者头像 李华
网站建设 2026/5/11 2:21:06

Obsidian Templater插件:新手也能轻松掌握的智能笔记模板神器

Obsidian Templater插件:新手也能轻松掌握的智能笔记模板神器 【免费下载链接】Templater A template plugin for obsidian 项目地址: https://gitcode.com/gh_mirrors/te/Templater 还在为重复输入相同的笔记格式而烦恼吗?每次创建新笔记都要手动…

作者头像 李华
网站建设 2026/5/10 12:56:04

全面解析Agent Memory:最新最完整的综述,带你深入了解智能体记忆机制!

简介 这篇综述论文系统梳理了AI智能体的记忆机制,从形式、功能和动态三个维度构建了统一的记忆分类学。文章详细解析了符号级、参数化和潜在三种记忆形式,事实、经验和工作三种记忆功能,以及形成、演化和检索的动态过程。指出记忆是AI从静态回…

作者头像 李华