37-深度解析 QMap 与 QHash
其他
2020-04-25 08:53:16
阅读次数: 0
1. QMap深度解析
- QMap 是一个以升序键顺序存储键值对的数据结构
- QMap 原型为
class QMap<K,T>
模板
- QMap 中的键值对根据 key 进行了排序
- QMap 中的 key 类型必须重载 operator <
- QMap的注意事项
- 通过 Key 获取 value 时,当 Key 存在时返回对应的 Value,当 Key 不存在时返回值类型所对应的 “零” 值
- 插入键值对时,当 Key 存在时更新 Value 的值,当 Key 不存在时插入新的键值对
- QMap使用范例
2. QHash深度解析
- QHash 是 QT 中的哈希数据结构
- QHash 原型为
class QHash<K,T>
模板
- QHash 中的键值对在内部无序排列
- QHash 中的 Key 类型必须重载
operator ==
- QHash 中的 Key 对象必须重载全局哈希函数
qHash()
- QHash使用范例
3. QMap和QHash对比分析
- QHash 的查找速度明显快于 QMap
- QHash 占用的存储空间明显多于 QMap
- QHash 以任意的方式存储元素
- QMap 以 Key 顺序存储元素
- QHash 的键类型必须提供 operator ==() 和 qHash() 函数
- QMap 的键类型必须提供 operator<() 函数
4. NotePad项目改进
5. 总结
- QT 中提供了用于存储键值对的类模板
- QHash 和 QMap 遵循相同的使用接口
- QHash 的查找速度快于 QMap
- QMap 需要的内存空间低于 QHash
- QHash 对于 Key 类型的要求高于 QMap
发布了73 篇原创文章 ·
获赞 31 ·
访问量 10万+
转载自blog.csdn.net/qq_40794602/article/details/105710898