news 2026/9/3 5:05:51

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/9/2 13:35:09

postgres数据库备份和恢复命令

一、逻辑备份与恢复‌单库备份(pg_dump)‌pg_dump -U postgres -v -Fc -d 数据库名 --no-owner -f 备份文件名 示例:pg_dump -U postgres -v -Fc -d cosmic_fi --no-owner -f /data/backup/cosmic_fi.dump‌单库恢复(pg_restore&a…

作者头像 李华
网站建设 2026/9/2 19:10:33

终极Sketch批量重命名工具:快速提升设计文件管理效率

终极Sketch批量重命名工具:快速提升设计文件管理效率 【免费下载链接】RenameIt Keep your Sketch files organized, batch rename layers and artboards. 项目地址: https://gitcode.com/gh_mirrors/re/RenameIt 在Sketch设计工作中,图层和画板的…

作者头像 李华
网站建设 2026/9/2 22:45:21

ISTA3A/ISTA3E/ISTA3B三者区别是什么?

ISTA 3A、3E 和 3B 均为 ISTA 3 系列的包装运输验证标准,并获得国际认可。这三项标准的核心区别主要体现在适用场景、包装类型及测试重点上,简单来说就是“各自针对不同的运输环节”。具体差异如下:一、适用对象:运输方式 包装形…

作者头像 李华
网站建设 2026/9/2 20:18:47

2025年AI面试测评:五款主流工具实战对比

一面要筛1000份简历,另一面候选人抱怨流程拖沓?传统招聘模式在效率、公平与体验之间难以兼顾。2025年,企业如何通过AI面试工具破局?本文带来五款主流产品的客观测评。 一、企业招聘面临的核心问题 HR日常痛点真实写照&#xff1…

作者头像 李华
网站建设 2026/9/2 8:06:38

前端开发面试,就是撑死胆大的饿死胆小的

面过才懂:光 “实诚”“会干活” 不够,太老实易让优势变劣势,这些坑要避开:1. 🚫 JS核心基础不牢: 问题表现:闭包、原型链、事件循环讲得似是而非,手写Promise.all、防抖节流、深拷…

作者头像 李华
网站建设 2026/9/2 18:00:11

3分钟掌握luch-request:uni-app网络请求库的完整实战指南

3分钟掌握luch-request:uni-app网络请求库的完整实战指南 【免费下载链接】luch-request luch-request 是一个基于Promise 开发的uni-app跨平台、项目级别的请求库,它有更小的体积,易用的api,方便简单的自定义能力。 项目地址: …

作者头像 李华