遍历qvector_Qt容器类——1. QList类、QLinkedList类和QVector类

这篇博客介绍了Qt中的三种主要容器类:QList、QLinkedList和QVector,讨论了它们的存储策略、时间复杂度和遍历方式。QList采用指针数组存储,支持快速追加和插入操作;QLinkedList是链式列表,适用于频繁插入删除操作;QVector在连续内存中存储,提供高效下标访问。博客还提到了Qt提供的Java和STL风格迭代器用于遍历容器。
摘要由CSDN通过智能技术生成

在开发一个较高性能需求的应用程序时,程序员会比较关注这些容器类的运行效率,表2.1列出了QList、QLinkedList和QVector容器的时间复杂度比较。

39b81ca1020de115e7e5e096c971b7e9.png

1.QList类

QList是迄今为止最常用的容器类,它存储给定数据类型T的一列数值。

QList不仅提供了可以在列表进行追加的QList::append()和Qlist::prepend()函数,还提供了在列表中间完成插入操作的函数QList::insert()。

QList维护了一个指针数组,该数组存储的指针指向QList存储的列表项的内容。

对于不同的数据类型,QList采取不同的存储策略,存储策略有以下几种。

(1)如果T是一个指针类型或指针大小的基本类型(即该基本类型占有的字节数和指针类型占有的字节数相同),QList会将数值直接存储在它的数组中。

(2)如果QList存储对象的指针,则该指针指向实际存储的对象。

下面举一个例子:

#include

int main(int argc,char *argv[])

{

QList list;

{

QString str("This is a test string");

list<

}

qDebug()<

return 0;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值