QList & QLinkedList

#include <QCoreApplication>

#include<QDebug>

#include<qlinkedlist.h>

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

{

    QCoreApplication a(argc, argv);

    //QList

    /*

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

    · 如果T是一个指针类型或指针大小的基本类型(该基本类型占有的字节数和指针类型占有的字节数相同),

      QList<T>将数值直接存储在它的数组当中。

    ·如果QList<T>存储对象的指针,则该指针指向实际存储的对象。

    */

    QList<int> qlist//初始化一个空的QList<int>列表

    for(int i = 0;i<10;i++){

        qlist.insert(qlist.end(),i+10);

    }

    qDebug()<<

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
QLinkedListQt 框架中的一个双向链表容器类,它提供了类似于 QList 的接口,可以用于存储和操作数据。与 QList 不同的是,QLinkedList 的元素在内存中是通过指针连接起来的,这意味着插入和删除元素的开销比 QList 小,但是访问元素的开销比 QList 大。QLinkedList 支持在链表的头部和尾部添加元素,以及在任意位置插入和删除元素。 使用 QLinkedList 需要包含头文件 <QLinkedList>,并使用 QLinkedList<T> 定义一个链表,其中 T 表示链表中元素的类型。例如,定义一个存储整数的链表可以如下所示: ``` QLinkedList<int> list; ``` 常用的 QLinkedList 接口包括: - append(const T& value):在链表的尾部添加一个元素。 - prepend(const T& value):在链表的头部添加一个元素。 - insert(iterator pos, const T& value):在迭代器 pos 所指向的元素之前插入一个元素。 - remove(iterator pos):删除迭代器 pos 所指向的元素。 - removeFirst():删除链表的头部元素。 - removeLast():删除链表的尾部元素。 - clear():清空链表中的所有元素。 - size():返回链表中元素的个数。 - isEmpty():判断链表是否为空。 - begin():返回指向链表第一个元素的迭代器。 - end():返回指向链表最后一个元素之后的迭代器。 - constBegin():返回指向链表第一个元素的常量迭代器。 - constEnd():返回指向链表最后一个元素之后的常量迭代器。 使用示例: ```cpp #include <QLinkedList> #include <QDebug> int main() { QLinkedList<int> list; list.append(1); list.append(2); list.append(3); list.prepend(0); list.insert(++list.begin(), 5); for (QLinkedList<int>::iterator it = list.begin(); it != list.end(); ++it) { qDebug() << *it; } list.removeFirst(); list.removeLast(); list.remove(++list.begin()); qDebug() << "Size: " << list.size(); qDebug() << "IsEmpty: " << list.isEmpty(); return 0; } ``` 输出结果: ``` 0 5 1 2 3 Size: 3 IsEmpty: false ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值