当前位置: 首页 > news >正文

Qt 容器 Qlist

修改元素

1.修改链表指定位置元素 replace(5,66) 函数体指的是修改链表第五个元素,改为66

2.采用数组下标修改链表的元素: list[0] = 100 ; 把链表数组下标为0的元素改为100

删除元素

1.list.removeFirst() 删除第一个元素

2.list.removeLast() 删除最后一个元素

3.list.removeAt(2)  删除指定元素,下标元素为2

4.list.removeOne(99)  删除已知链表里面数据的元素,删除99

5.list.clear()  清空链表

Java风格迭代器

读写迭代器

//Java风格的迭代器//可读可写迭代器QList<int> montList; //定义链表 月份QMutableListIterator<int> it_mrw(montList); //读写迭代器for(int i=0 ; i< 12 ; i++) //初始化元素it_mrw.insert(i);      //插入元素qDebug()<<"初始化后数据反遍历:";for(it_mrw.toBack();it_mrw.hasPrevious();)qDebug()<<it_mrw.previous();qDebug()<<"初始化后数据正遍历:";for(it_mrw.toFront();it_mrw.hasNext();)qDebug()<<it_mrw.next();//把第一元素改为1,最后一个元素改为12for(it_mrw.toFront();it_mrw.hasNext();){int month = it_mrw.next();if(month == 0)it_mrw.remove();if(month == 11)it_mrw.setValue(12);}qDebug()<<"修改后数据正遍历:";for(it_mrw.toFront();it_mrw.hasNext();)qDebug()<<it_mrw.next();//只读迭代器//只读迭代器QListIterator<int> it_mr(montList);//正遍历qDebug()<<"只读迭代器正遍历:";for(it_mr.toFront();it_mr.hasNext();)qDebug()<<it_mr.next();//反遍历qDebug()<<"只读迭代器反遍历:";for(it_mr.toBack();it_mr.hasPrevious();)qDebug()<<it_mr.previous();

QMutableListIterator 是 Qt 框架中提供的一个迭代器,专门用于修改列表(QList)中的元素。与标准的 Qt 迭代器(如 QListIterator)不同,QMutableListIterator 允许你在迭代过程中直接修改列表的内容。

当你使用 QMutableListIterator 遍历一个列表时,你可以直接通过迭代器来修改该列表的元素。这对于在遍历列表的同时进行修改操作非常有用。

STL风格迭代器

 QList<int> numList;numList << 11 << 22 << 33 << 44 << 55 ;//读写迭代器QList<int>::iterator it_numRW;it_numRW = numList.begin();for(;it_numRW !=numList.end();++it_numRW){*it_numRW = *it_numRW * 10;qDebug()<<*it_numRW;}//只读迭代器QList<int>::const_iterator it_numR;it_numR = numList.constBegin();qDebug()<<"STL风格只读正遍历:";for(;it_numR !=numList.constEnd();++it_numR)qDebug()<<*it_numR;

QLinkedList类

 QLinkedList<QString> weekList;for(int j=1; j < 8;j++)weekList<<QString("%1%2").arg("星期").arg(j);//Java风格只读迭代器QLinkedListIterator<QString> it_wr(weekList);for(it_wr.toFront();it_wr.hasNext();)qDebug()<<it_wr.next();//Java风格读写迭代器QMutableLinkedListIterator<QString> it_wrw(weekList);for(it_wrw.toFront();it_wrw.hasNext();){QString day = it_wrw.next();if(day == "星期3")it_wrw.setValue("星期三");if(day == "星期5")it_wrw.remove();}qDebug()<<"weekList修改数据后:";for(it_wrw.toFront();it_wrw.hasNext();)qDebug()<<it_wrw.next();//插入元素for(it_wrw.toFront();it_wrw.hasNext();){QString day = it_wrw.next();if(day == "星期4")it_wrw.insert("星期五");}qDebug()<<"添加星期五后遍历:";for(it_wrw.toFront();it_wrw.hasNext();)qDebug()<<it_wrw.next();

QList与QLinkedList区别: 

QLinkedList类不能使用.At及数组来访问元素,但当插入数据元素量特别庞大时:QLinkedList比QList速度更快及更加便捷 

相关文章:

  • 伪装实例分割模型:OSFormer模型及论文解析
  • 51单片机定时器
  • Tomcat快速入门
  • Python基础之异常处理
  • springboot配置项动态刷新
  • 应用层—HTTPS详解(对称加密、非对称加密、密钥……)
  • 5G_系统同步机制(八)
  • JVM篇--垃圾回收器高频面试题
  • R语言【cli】——ansi_trimws():从ANSI字符串中删除前导和/或尾随空格
  • 链表|数据结构|C语言深入学习
  • c++设计模式之单例模式
  • 力扣(leetcode)第35题搜索插入位置(Python)
  • Git 操作
  • 启动低轨道卫星LEO通讯产业与6G 3GPP NTN标准
  • 纯前端网页编辑Office文档安全预览之打开Word文档后禁止另存为....
  • JavaScript学习总结——原型
  • JavaScript异步流程控制的前世今生
  • js正则,这点儿就够用了
  • MD5加密原理解析及OC版原理实现
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 你不可错过的前端面试题(一)
  • 排序(1):冒泡排序
  • 让你的分享飞起来——极光推出社会化分享组件
  • 如何用vue打造一个移动端音乐播放器
  • 硬币翻转问题,区间操作
  • FaaS 的简单实践
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • (C++)八皇后问题
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (Matlab)使用竞争神经网络实现数据聚类
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (附源码)计算机毕业设计ssm电影分享网站
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (转)Oracle存储过程编写经验和优化措施
  • .CSS-hover 的解释
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .NET Standard 支持的 .NET Framework 和 .NET Core
  • .NET 服务 ServiceController
  • .NET 中创建支持集合初始化器的类型
  • .NET序列化 serializable,反序列化
  • @RequestMapping处理请求异常
  • [ vulhub漏洞复现篇 ] ECShop 2.x / 3.x SQL注入/远程执行代码漏洞 xianzhi-2017-02-82239600
  • [ vulhub漏洞复现篇 ] JBOSS AS 4.x以下反序列化远程代码执行漏洞CVE-2017-7504
  • [ 常用工具篇 ] AntSword 蚁剑安装及使用详解
  • []新浪博客如何插入代码(其他博客应该也可以)
  • [23] 4K4D: Real-Time 4D View Synthesis at 4K Resolution
  • [BIZ] - 1.金融交易系统特点
  • [BUG]Datax写入数据到psql报不能序列化特殊字符
  • [C/C++]_[初级]_[关于编译时出现有符号-无符号不匹配的警告-sizeof使用注意事项]
  • [C++] cout、wcout无法正常输出中文字符问题的深入调查(1):各种编译器测试
  • [CareerCup] 13.1 Print Last K Lines 打印最后K行