首页 > 其他分享 >4、QList类,QLinkedList类

4、QList类,QLinkedList类

时间:2023-11-22 17:33:39浏览次数:32  
标签:iterator ++ QList QLinkedList qAllMonth qlist

QList类

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

  • 如果T是一个指针类型或者指针大小的基本类型(该基本类型占有的字节数和指针类型占有的字节数相同),QList<T>将数值直接存储在它的数组中。
  • 如果QList<T>存储对象的指针,则该指针只想实际存储的对象。
//QList类
    QList<int> qlist;//初始化一个空的QList<int>列表
    for (int i = 0; i < 10; ++i) {
        qlist.insert(qlist.end(),i+10);
    }

    qDebug() << qlist;


    //通过QList<int>::iterator读写迭代器
    QList<int>::iterator x;
    for (x = qlist.begin(); x !=qlist.end(); x++) {
        qDebug() << (*x);
        *x =(*x)*10+6;
        qDebug() << (*x);
    }

    QList<int>::const_iterator qciter;
    for (qciter = qlist.begin(); qciter !=qlist.constEnd();qciter++) {
        qDebug() << *qciter;
    }


    qDebug() << endl;
    //想qlist添加元素
    qlist.append(666);
    QList<int>::iterator itr1;
    for (itr1 = qlist.begin(); itr1 !=qlist.constEnd();itr1++) {
        qDebug() << *itr1;
    }

    qDebug() << endl;
    //查询qlist当中的元素
    qDebug() << qlist.at(3);
    qDebug() << qlist.contains(666);


    //修改qlist里的值
    qlist.replace(3,888);
    qDebug() << qlist;


    //删除qlist里的元素
    qlist.removeAt(0);
    qlist.removeAt(2);
    qlist.removeFirst();
    qlist.removeLast();
    qDebug() << qlist;

 

QLinkedList类

QLinkedList<T>是一个链式列表,它是以非连续的内存块保存数据。所以不能是用下标,只能用迭代器访问数据项,与QList相比,当对一个很大的列表插入数据时,QLinkedList效率更高。

//QLinkedList

    QLinkedList<QString> qAllMonth;

    for (int i = 0; i < 12; i++) {
        qAllMonth << QString("%1%2").arg("Month:").arg(i);
    }


    //读写迭代器
    QLinkedList<QString>::iterator itow=qAllMonth.begin();

    for(;itow !=qAllMonth.end();itow++){
        qDebug() << *itow;
    }



    //只读迭代器
    QLinkedList<QString>::const_iterator itr=qAllMonth.begin();
    for(;itr !=qAllMonth.end();itr++){
        qDebug() << *itr;
    }

 

标签:iterator,++,QList,QLinkedList,qAllMonth,qlist
From: https://www.cnblogs.com/baisedeyu/p/17849620.html

相关文章

  • 模型视图简介、QListWidget、QTreeWidget、QTableWidget、QStringListModel、QFileSys
    一、模型视图简介   有时,我们的系统需要显示大量数据,比如从数据库中读取数据,以自己的方式显示在自己的应用程序的界面中。早期的Qt要实现这个功能,需要定义一个组件,在这个组件中保存一个数据对象,比如一个列表。我们对这个列表进行查找、插入等的操作,或者把修改的地方写回,然后......
  • pyqt5-QListWidgetItem列表项组件
    1、介绍QListWidgetItem,列表项组件。QListWidgetItem(parent:typing.Optional[QListWidget]=None,type:int=QListWidgetItem.Type)QListWidgetItem(text:str,parent:typing.Optional[QListWidget]=None,type:int=QListWidgetItem.Type)QListWidgetItem(icon:......
  • pyqt5-QListWidget列表组件
    1、介绍QListWidget,列表组件2、基础使用addItem(self,aitem:QListWidgetItem)addItem(self,label:str)添加项addItems(self,labels:Iterable[str])添加多个项item(self,row:int)->QListWidgetItem获取指定索引的项insertItem(self,row:int,item:QLi......
  • QListWidget的使用、数据库获取以及排序
       QListWidget是Qt中的一个用于显示列表型数据的部件,它可以用于显示一列项目(item)的列表。每个项目通常可以包含文本、图标或其他自定义内容。创建一个QListWidget实例:在你的主窗口或其他窗口部件中创建一个QListWidget实例:QListWidget*listWidget=newQListWidget(t......
  • Qt QListView添加数据
    QListView添加数据准备数据QStringListlist;list<<"数据1"<<"数据2";准备模型QStringListModel*model;model=newQStringListModel(this);将数据添加到模型中model->setStringList(list);为QListView添加数据模型ui->listView->setMode......
  • qlist 对结构体排序
    结构体排序:写法一QList<test>s;testaa;testbb;testcc;aa.num="14";bb.num="2";cc.num="3";s.append(aa);s.append(bb);s.append(cc);qSort(s.begin(),s.end(),[](consttest&infoA......
  • View与Widget,以QListView与QListWidget为例
    目录View与Widget的区别和联系如何正确使用QListView与QListWidget使用QListView:使用QListWidget:代码演示总结在Qt框架中,"View"与"Widget"是两个关键概念,它们在用户界面设计和数据展示中发挥重要作用。本篇博客将介绍"View"和"Widget"的区别与联系,然后使用Qt中的QListView和QList......
  • QListWidget样式
    /*设置垂直滚动的全局属性值*/QScrollBar:vertical{  width:10px;  background:rgba(0,0,0,0%);  margin:0px,0px,0px,0px;  padding-top:0px;  padding-bottom:0px;}/*设置垂直滚动的滚动条属性值*/QScrollBar::handle:vertical{  width:10px;  back......
  • qt 中的QlistWidget
       ......
  • 局部变量元素加入成员变量QList后,局部变量出了作用域后,为什么QList仍然可以获取元素的
    问题问题:现有一个成员变量QList,在函数中定义了一个局部变量的对象,并将该局部变量加入到QList中。当函数运行结束,局部变量也就出了作用域,这时,由于局部变量只是一个普通对象,而不是指针,所以,应该被销毁。但是,我们在外面仍然可以通过QList对象来访问之前加入进来的数据,这是为什么?实验......