本文主要是介绍【Test 001】Qt 开发基础体系 QMap 类和 QHash 类以及 QVector 类,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 1.QMap 详解
- 1.1 QMap 的介绍
- 1.2 QMap 的具体用法如下
- 1.3 QmultiMap类
- 2.QHash 详解
- 3. QMap 和 QHash 的对比
- 4. QVector 详解
1.QMap 详解
1.1 QMap 的介绍
🐧①
QMap<key,T>
提供一个从类型为Key的键到类型为T的值的映射
。通常,QMap存储的数据形式是一个键对应一个值,并且按照键Key的次序存储数据。
🐧② 为了能够支持一键多值
的情况,QMap提供QMap<key,T>:insertMulti ()
和QMap<key,T>::values ()
函数。QMultiMap 类来实例化一个QMap对象。
1.2 QMap 的具体用法如下
- 🍎插入信息的方式:
- 🍎删除信息,直接通过 key 键删除
- 🍎遍历 QMap 类的两种迭代方式
- 🍎通过
key
来找T
,或者通过T
来找key
,注意在QMap中,可以通过值来找键的哦🐧
- 🍎对
T
值进行修改,直接采取insert()
进行插入覆盖即可
- 🍎查询是否包含某个键
- 🍎分别输出所有的
key
和T
值,放到QList
中进行输出
1.3 QmultiMap类
- 例如一个学生有
学号、姓名、性别、年龄
,这个时候就要用到一个键对应多个值的概念啦!直接用QmultiMap
类即可。
2.QHash 详解
🐧①
QHash<Key,T>
具有与QMap
几乎完全相同的API。QHash 维护着一张哈希表(Hash Table),哈希表的大小与QHash的数据项的数目相适应。
🐧②QHash
以任意的顺序
组织它的数据。当存储数据的顺序无关紧要
时,
建议使用QHash作为存放数据的容器。
🍎①QHash
存储数据,注意数据存入的顺序是任意的❗
🍎②用迭代器进行遍历 QHash
3. QMap 和 QHash 的对比
🐧Ⅰ. QHash 与 QMap 的功能差不多,但 QHash 的查找速度更快;
🐧Ⅱ.QMap 是按照键的顺序存储
数据,而 QHash 是任意顺序
存储的;
🐧Ⅲ.QMap 的键必须提供"<”运算符,而 QHash 的键必须提供“=="运算符和
一个名为 qHash()的全局散列函数。
4. QVector 详解
QVector <T>
在相邻的内存
当中存储给定数据类型T的一组数值。在一个QVector
的前部或者中间位置进行插入操作的速度是很慢的,这是因为这样的操作将导致内存中的大量数据被移动,这是由QVector
存储数据的方式决定的。
🍎①插入数据,有两种方式
🍎②求出 QVector
中元素的个数,以及遍历所有元素
🍎③元素的删除,可以控制删除一个区间的元素哦(只需要给出起始位置和删除的个数即可)🔍
🍎④判断容器是否包含某个元素
这篇关于【Test 001】Qt 开发基础体系 QMap 类和 QHash 类以及 QVector 类的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!