博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hash 内部实现
阅读量:5874 次
发布时间:2019-06-19

本文共 755 字,大约阅读时间需要 2 分钟。

http://www.cnblogs.com/waytofall/archive/2012/06/04/2534386.html

散列表:是根据(Key value)而直接访问在内存存储位置的。也就是说它通过把键值通过一个函数的计算,到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做,存放记录的数组称做散列表

hash_map中直接地址用hash函数生成,解决冲突用比较函数解决。

hash 容器除了hash_map之外,还有hash_sethash_multimaphas_multiset, 这些容器使用起来和set, multimap, multiset的区别与hash_map和map的区别一样,

 hash_map 和 map的区别在哪里?

  • 构造函数。hash_map需要hash函数,等于函数;map只需要比较函数(小于函数).
  • 存储结构。hash_map采用hash表存储,map一般采用实现。因此其memory数据结构是不一样的。

什么时候需要用hash_map,什么时候需要用map?

  • 总体来说,hash_map 查找速度会比map快,而且查找速度基本和数据数据量大小,属于常数级别;而map的查找速度是log(n)级别。并不一定常数就比log(n)小,hash还有hash函数的耗时,明白了吧,如果你考虑效率,特别是在元素达到一定数量级时,考虑考虑hash_map。但若你对内存使用特别严格,希望程序尽可能少消耗内存,那么一定要小心,hash_map可能会让你陷入尴尬,特别是当你的hash_map对象特别多时,你就更无法控制了,而且hash_map的构造速度较慢。

 

转载于:https://www.cnblogs.com/xaf-dfg/p/3696081.html

你可能感兴趣的文章
带个机器人带回家 体验Scooba地板清洁工
查看>>
2G,3G,4G,5G的不同之处
查看>>
Java-第十四章-代参的方法(二)-编程实现,输入班里10名学生的身高,获得身高最高的学生要求对象数组类型方法...
查看>>
js获取当月最后一天
查看>>
lpk.dll是什么
查看>>
Office 365 系列之二:注册全球版微软 Office 365
查看>>
FPGA设计——图像处理(锐化增强)
查看>>
Linux基础系列(四)Linux系统软链接硬链接知识
查看>>
域名过期提前通知脚本
查看>>
AutoIt v3.3.14.2 汉化最新版
查看>>
LINUX REDHAT第十三单元练习题
查看>>
Play Framework
查看>>
集合转数组注意
查看>>
gng3使用方法,正确的路由器防火墙安全配置方式
查看>>
VIP漂移生效时间可以用如下命令去缩短
查看>>
基于域名虚拟主机及主站迁移
查看>>
linux sed
查看>>
高可用高性能负载均衡软件HAproxy详解指南-第一章(简介、安装)
查看>>
超级碗另一面:大逆转背后,你没看到的人工智能大PK
查看>>
判断滚动条是否滚动到最底端
查看>>