QList、QLinkedList和QVector类是Qt5常用的容器类,使用这些类可以帮助开发者开发出一个较高性能的应用程序。 三个类的时间复杂度如图: 1、QList类 用法QList< T >,存储给定数据类型T的一列数值,是最常用的容器类。 QList提供了一些方便的功能函数: QList::apend() 末尾追加 QList::prepend()开头追加 QList::insert()中间插入 QList< T>维护了一个指针数组,该数组存储的指针指向QList< T>存储的列表项内容。 不同的数据类型,QList< T>采取不同的存储策略,主要包括 1、如果T是一个指针类型或指针大小的基本类型,QList< T>会将数值直接存储在它的数组里。 2、如果QList< T>存储对象的指针,则该指针指向实际存储的对象。 Eg.
#include <QDebug> int main(int argc,char *argv[]) { QList<QString> list; QString str1="hello"; QString str2="world!"; list.append(str2); qDebug()<<list[0];//输出为world list.prepend(str1); qDebug()<<list[0];//输出为hello qDebug()<<list;//输出为("hello","world") }2、QLinkedList类 QLinkedList< T>是一个链式列表,以非连续内存块保存数据。 QLinkedList< T>不能使用下标,只能使用迭代器访问它的数据项。
3、QVector类 QVector< T>在相邻的内存中存储给定数据类型T的一组数值。 QVector< T>既可以使用下标访问数据项,也可以使用迭代器访问数据项。 QT提供了两种遍历容器的方式:Java风格迭代器遍历容器和STL风格迭代器遍历容器 java风格: STL风格: