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
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
欢迎关注我,一起进步!扫描下方二维码即可加我
![](https://images.cnblogs.com/cnblogs_com/FKdelphi/1101510/o_200417075318%E5%8A%A0%E6%88%91QQ.jpg)
![](https://images.cnblogs.com/cnblogs_com/FKdelphi/1101510/o_200417080925%E5%8A%A0%E6%88%91%E5%BE%AE%E4%BF%A1.jpg)