Qt-QMap与QHash的比较
相关资料:
https://www.jianshu.com/p/aa8b3749c5a6 原文
1. QMap深度解析
QMap是一个以升序键顺序存储键值对的数据结构
QMap原型为class QMap
QMap中的键值对根据Key进行了排序
QMap中的Key类型必须重载operator <
2. QMap的注意事项
1)通过Key获取Value时:
当Key存在:返回对应的Value
当Key不存在:返回值类型所对应的“零”值
2)插入键值对时:
当Key存在:更新Value的值
当Key不存在:插入新的键值对
3. QHash深度解析
QHash是Qt中的哈希数据结果
QHash原型为class QHash
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
搜索
复制