Qt-QMap与QHash的比较
相关资料:
https://www.jianshu.com/p/aa8b3749c5a6 原文
1. QMap深度解析
QMap是一个以升序键顺序存储键值对的数据结构
QMap原型为class QMap<K, T>模板
QMap中的键值对根据Key进行了排序
QMap中的Key类型必须重载operator <
2. QMap的注意事项
1)通过Key获取Value时:
当Key存在:返回对应的Value
当Key不存在:返回值类型所对应的“零”值
2)插入键值对时:
当Key存在:更新Value的值
当Key不存在:插入新的键值对
3. QHash深度解析
QHash是Qt中的哈希数据结果
QHash原型为class QHash<K, T>模板
QHash中的键值对在内部无序排列
QHash中的Key类型必须重载operator ==
QHash中的Key对象必须重载全局哈希函数qHash()
4. QMap和QHash对比分析
QHash的查找速度明显快于QMap
QHash占用的存储空间明显多于QMap
QHash以任意的方式存储元素
QMap以Key顺序存储元素
QHash的键类型必须提供operator==()和qHash(key)函数
QMap的键类型必须提供operator<()函数
5. 小结
Qt中提供了用于存储键值对的类模板
QHash和QMap遵循相同的使用接口
QHash的查找速度快于QMap
QMap需要的内存空间低于QHash
QHash对于Key类型的要求高于QMap
作者:疯狂Delphi
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
欢迎关注我,一起进步!扫描下方二维码即可加我


【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现