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

搜索

复制

相关