QList和QVector等容器的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QList和QVector等容器的区别相关的知识,希望对你有一定的参考价值。

参考技术A Qt中容器类的主要特征在这里:
QVector类是一个提供动态数组的模板类。
QVector<T>是Qt普通容器类的一种。它将自己的每一个对象存储在连续的内存中,可以使用索引号来快速访问它们。QList<T>、QLinkedList<T>和QVarLengthArray<T>也提供了相似的功能,它们使用方法如下:
l QList一般用得最多,它能满足我们绝大部分需求。像prepend()和insert()这样的操作通常比QVector要快些,这是由于QList存储它的对象的方式(Algorithmic Complexity)不同。还有它基于索引的API比QLinkedList的基于迭代器的API更方便使用。最后,执行程序时它的代码扩展量更少些。本回答被提问者采纳

QT软件开发之入门基础--1.7 容器类

1.7容器类

QList是一种表示链表的模板类(Qt的一种泛型容器类)。它以链表方式存储一组值,并能对这组数据进行快速索引,还提供了快速插入和删除等操作。

QList与QLinkedList和QVector提供的操作极其相似,对大多数操作来说,我们用QList就可以了。其API是基于索引(index)的,因此用起来比QLinkedList更方便(QLinkedList的API是基于迭代器的)。QList比QVector更快,这是由它们在内存中的存储方式决定的。

1.7.1构建QList列表

使用QList类需要先添加#include <QList>头文件。

1.构建QString类型的列表,并输出其中的值:

/*构造一个列表类*/
QList<QString> my_list;

/*向列表中填充数据*/
my_list<<"123"<<"456"<<"789";

/*打印出列表中的数据*/
for(int i=0;i<my_list.count();i++)
{
    //取出列表中指定的值
    qDebug()<<my_list.at(i);
}

2.构建int类型的QList列表,并输出其中的值


                

以上是关于QList和QVector等容器的区别的主要内容,如果未能解决你的问题,请参考以下文章

Qt容器类的对象模型及应用(线性结构篇:对于QList来说,sharable默认是false的,但对于接下来讲的QVector来说,sharable默认是true)

QList介绍(QList比QVector更快,这是由它们在内存中的存储方式决定的。QStringList是在QList的基础上针对字符串提供额外的函数。at()操作比操作符[]更快,因为它不需要深度

QList和QVector使用

Qt学习总结(C鱼)之QList和QMap容器类

QT软件开发之入门基础--1.7 容器类

Qt之容器类