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

Qt容器类

程序员文章站 2022-06-17 08:02:42
...

Qt容器类分为:顺序容器,关联容器

顺序容器有,QList,QLinkedList,QVector,QStack,QQueue

QList,在其前后添加数据非常快,以下标缩印的方式对数据访问

    //QList能对数据进行快速索引,还提供了快速插入和删除等操作
    QList<QString> list;
    list.append("abc");//尾添加
    list << "one" << "two";
    list.prepend("123");//头添加
    for(int i = 0; i < list.length(); i++)
    {
        qDebug() << list.at(i);
    }

    //用迭代器遍历QList
    QList<QString>::iterator ite = list.begin();//include <iterator>头文件
    for(ite; ite != list.end(); ite++)
    {
        qDebug() << *ite;
    }

QList提供了一系列添加、移动、删除元素的操作:insert(), replace(), removeAt(),swap()
。此外,它还提供了便于操作的函数:append(), prepend(), removeFirst(),removeLast()。

QLinkedList是一个链式列表,
它以非连续的内存快保存数据,所以他是不能使用下标进行访问的,
也就是说他更适合插入的操作,

QVector这个方式是在相邻的内存位置上保存数据的,
也就是以数组的方式进行存储的,
所以对起进行插入的操作的时候是一项很耗时间的,
因为要有大量的数据进行一动。。当然也是可以通过下标对其进行访问的。

QStack 和 QQueue,它们提供了后进先出和先进先出。

	QStack<int> stack;
    stack.push(10);//入栈
    stack.push(20);
    stack.push(30);
    while(!stack.isEmpty())
        qDebug() << stack.pop();//出栈  30 20 10
    QQueue<int> queue;
    queue.enqueue(10);//入队列
    queue.enqueue(20);
    queue.enqueue(30);
    while (!queue.empty())
    {
        qDebug() << queue.dequeue();//出队列  10 20 30
    }