首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Qt列表-QList,Qlinkedlist

Qt列表-QList,Qlinkedlist

原创
作者头像
Swing Dunn
发布2025-12-03 17:16:25
发布2025-12-03 17:16:25
710
举报
文章被收录于专栏:Qt_5_FQt_5_F
代码语言:txt
复制
#include <QCoreApplication>
#include<QDebug>
#include<QLinkedList>

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

    //QList类
    //对于不同的数据类型 ,QList<T>采取不同的存储策略:
    //如果T是一个指针类型,或则指针大小的基本类型(该基本类型占有的字节数与指针类型占有的字节数相同),则
    //QList<T>直接春初数值在他的数组中; 如果QList<T>存储对象的指针,则该指针指向实际存储的对象。
    QList<int> qlist;
    for(int i =0 ; i < 10; i++)
        qlist.insert(qlist.end(), i+10);
    qDebug()<<qlist;
    qDebug()<<"---------------通过QList<T>::iterator读写迭代器 --------------";

    QList<int>::iterator itera;
    qDebug()<<"Result1: ";
    for(itera = qlist.begin(); itera != qlist.end(); itera++)
    {
        qDebug()<< *itera;
        *itera = (*itera) * 10 +6;
    }

    qDebug()<<"---------------通过QList<T>::const_iterator只读迭代器 --------------";
    QList<int>::const_iterator con_itera;
    for(con_itera = qlist.constBegin(); con_itera != qlist.constEnd(); con_itera++)
    {
        qDebug()<< *con_itera;
        //*con_itera = (*con_itera) * 10 +6; 只读迭代器下 改值操作是不允许的 会报错
    }

    qDebug()<<"---------------QList中添加元素  在尾部中追加元素 --------------";
    //QList中添加元素  在尾部中追加元素
    qlist.append(666);
    qDebug()<<qlist;

    qDebug()<<"---------------查询QList中的元素 --------------";
    //查询QList中的元素
    qDebug()<< qlist.at(1); //通过index访问
    qDebug()<< qlist.contains(666) ;//true 是否包含元素

     qDebug()<<"---------------修改QList中的元素 --------------";
    //修改Qlist列表中的元素值
     qlist.replace(3,88);
     qDebug()<<qlist;

    qDebug()<<"---------------删除QList中的元素 --------------";
    //删除QList中的元素
    qlist.removeAt(0); //删除index为0的元素
    qlist.removeFirst(); //删除第一个元素
    qDebug()<<qlist;


    //QLinkedList类
    //QLinked<T>是一个链式列表,它以非连续的内存块保存数据;Qlinklist
    //不能使用下标,只能使用迭代器访问它的数据项; 与QList对比,在对很大的
    //列表进行插入操作时,QLinkedlist具有更高的效率

    //容器类   STL风格迭代器遍历 只读迭代器        读写迭代器
    //  QList<T>    QList<T>::const_iterator    Qlist<T>::iterator
    //  QQueue<T>   QQueue<T>::const_iterator   QQueue<T>::iterator
    //  QLinkedlist<T> QLinkedlist<T>:const_iterator QLinkedlist<T>:iterator
    QLinkedList<QString> qAllmonth;
    qDebug()<<"---------------QLinkedlist插入(创建)元素-------------";
    for(int i =0; i < 12; ++i)
        qAllmonth<<QString("%1%2").arg("Month:").arg(i+1);
    qDebug()<<"---------只读迭代器遍历---------------";
    QLinkedList<QString>::const_iterator con_qllist = qAllmonth.constBegin();
    while (con_qllist != qAllmonth.constEnd()) {
        qDebug()<<*con_qllist;
        con_qllist++;
    }

    //QLinkedList是一个链表,不能通过索引访问元素;插入和删除速度快,效率高
    return a.exec();
}

所有示例运行结果:

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档