Qt 常见容器类用法(二)

目录

QList类

QLinkedList类


QList类

对于不同的数据类型,QList采取不同的存储策略,存储策略如下:

  • 如果T是一个指针类型或指针大小的基本数据类型(该基本类型占有的字节数和指针类型占有的字节数相同),QList将数值直接存储在它的数组当中。
  • 如果QList存储对象的指针,则该指针指向实际存储的对象
#include 

#include 

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QList qlist; // 初始化一个空的QList列表
    for(int i=0;i<10;i++)
        qlist.insert(qlist.end(),i+10);
    qDebug()<::
    QList::iterator x;
    qDebug()<const iterator 只读迭代器
    qDebug()<::const_iterator qciter;
    for(qciter=qlist.constBegin();qciter!=qlist.constEnd();qciter++)
        qDebug()<<*qciter;

    // 向qlist添加元素
    qlist.append(666);
    QList::iterator itr1;
    qDebug()<

结果如下:

Qt 常见容器类用法(二)_第1张图片

QLinkedList

QLinkedList是一个链式列表,它以非连续的内存块保存数据。QLinkedList不能使用下标,只能使用迭代器访问它的数据项。与QLink相比,当对一个很大的列表进行插入操作时,QLinkedList具有更高的效率。

#include 

#include 
#include 

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QLinkedList qAllMonth;

    for(int i=1;i<=12;i++)
        qAllMonth<::iterator itrw=qAllMonth.begin();
    for(;itrw!=qAllMonth.end();itrw++)
        qDebug()<<*itrw;

    // 只读迭代器
    qDebug()<::const_iterator itr=qAllMonth.constBegin();
    for(;itr!=qAllMonth.constEnd();itr++)
        qDebug()<<*itr;

    return a.exec();
}

结果如下:

Qt 常见容器类用法(二)_第2张图片

QLinkedList类不能通过索引方式访问元素(链表),保存大规模数量数据信息,建议使用QLinkedList(插入元素和删除元素,速度快,效率高)。

你可能感兴趣的:(QT,qt)