欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Qt的容器类

程序员文章站 2022-06-17 07:55:00
...

1. 容器类的定义
Qt提供了多个基于模板的容器类,这些容器类可以用于存储指定类型的数据项,例如常用的字符串列表类 QStringlist就是从容器类QList继承的,实现对字符串列表的添加、存储、删除等操作。
容器类是基于模板的类,如常用的容器类 QList,T是一个具体的类型,可以是int、float等简单类型,也可以是QString、 QDate等类,但不能是QObject或任何其子类。T必须是一个可赋值的类型,即T必须提供一个缺省的构造函数,一个可复制构造函数和一个赋值运算符。
例如用QList定义一个字符串列表的容器,其定义方法是:

QList<QString> aList;
aList.append("Monday");
aList.append("Tuesday");
aList.append("Wednesday");
QString str=aList[0];

2. 容器类的优点
Qt的容器类比标准模板库(STL)中的容器类更轻巧、安全和易于使用。这些容器类是隐式共享和可重入的,而且它们进行了速度和存储优化,因此可以减少可执行文件的大小。此外,它们还是线程安全的,也就是说它们作为只读容器时可被多个线程访问。

3. 容器类的分类
Qt的容器类分为顺序容器sequential containers)和关联容器associative containers)。
顺序容器类QList、QLinkedList、QVector、QStackQQueue
关联容器类QMap、QMultiMap、QHash、QMultiHashQSet

相关标签: Qt qt