3.1.5.Qt容器大家族(1):QList——最常用的顺序容器
1.前续故事好久不见啦我也是期末考试和GESP6级考完了暑假来啦这会可真是旗开得胜呢Qt魔法之旅的暑假篇即将开启接下来你们将会遇见更多的Qt朋友们再次见识Qt的厉害废话不多说直接进入正题。2.内容介绍上节课我们讲解了QDate、QTime和QDateTime这三剑客他们能存储时间和日历。而从这节课开始我们要学习好几个能容器类他们是我们Qt开发中最基础的几个类你们是不是迫不及待了呢那就快点开始吧3.什么是容器简单来说呢顾名思义容器就是用来存储数据的类就像是我们平常的箱子、水杯这样的。而C标准库中就有STL库比如vector、set等他们就是C标准库的容器。而Qt呢它其实也有一套容器类而且和C标准库很相似。今天我们就先来讲QList。4.讲解QListQList嘛它是Qt容器类中最简单、最常用的一个它和标准库中的vector很类似也是用来存储一个动态列表的随机访问速度快。它的创建方式和vector差不多也是QList类型这样定义的。//创建一个int类型的列表 QListint l;那么我们该如何在列表中添加元素呢这里有两种方法第一种是用append函数来在列表末尾添加元素或者是用prepend函数来在列表开头添加元素。第二种使用QList重载的运算符来添加用重载运算符可以一次性添加好几个元素。//第一种函数 l.append(1); //在末尾添加1 l.prepend(2); //在开头添加2 //第二种重载运算符 l 1 2 3 4 5; //一次性添加完1、2、3、4、5或者如果我们要直接初始化这个列表可以直接用大括号来赋值非常方便。只在末尾添加、开头添加肯定不够肯定还要插入。这时我们就要用insert函数它有两个参数第一个是要插入的下标第二个是要插入的数。l.insert(2, 50);QListint l {1, 2, 3, 4, 5};既然有了添加元素那么肯定要有删除元素、访问元素。接下来我就来讲解如何删除元素。删除元素的函数有很多首先就是我们最常见的removeAt函数里面传的是一个下标表示要删除的元素的下标。还有如果我们就只想删除最前面的或者最后面的就可以用removeFirst和removeLast来删除第一个和结尾的元素。l.removeAt(2); //删除下标为2的元素 l.removeFirst(); //删除第一个 l.removeLast(); //删除最后一个那我们要如何删除一个匹配的值呢这时我们就可以用removeOne这个函数会删除第一个匹配的值。还有removeAll可以删除所有匹配的值。l.removeOne(1); //删除第一个1 l.removeAll(2); //删除所有的2如果要清空整个数组那么用clear函数就搞定了不用任何参数。最后就是查询了。如何知道这个列表的长度那就用size函数。怎么判断列表是否是空荡荡的呢用isEmpty就能判断。qDebug() l.size(); //输出列表长度 qDebug() l.isEmpty(); //输出是否为空我们要如何访问第几个下标的元素是多少呢最简单的方法就是用中括号里面填写下标和普通数组、vector是一样的。还有一种方法就是at函数at函数更安全出现越界访问时会抛出异常让你知道异常之处在哪里。int a l[2]; //中括号访问下标为2的元素 int b l.at(2); //更安全的访问方法当然这里也有first和last能返回第一个元素和最后一个元素。还有一个很实用的操作——查找。用indexOf可以知道一个元素第一次出现的下标。contains函数可以判断一个元素是否存在。qDebug() l.indexOf(3); //输出3第一次出现的位置 qDebug() l.contains(5); //输出5是否存在最后如果你想遍历整个列表可以用三种方式第一种就是普通的下标访问第二种是用C11的范围for更简洁最后一种就是迭代器迭代器是一个指针所以要解引用。我们最常用的就是第二种最方便。// 方式一下标遍历 for (int i 0; i l.size(); i) qDebug() l[i]; // 方式二范围for推荐最简洁 for (int val : l) qDebug() val; // 方式三迭代器 for (auto it l.begin(); it ! l.end(); it) qDebug() *it;好了QList的基本操作就讲到这里。我们下节课再见拜拜

相关新闻

TVA具身智能的概念、架构与应用(16)

TVA具身智能的概念、架构与应用(16)

前沿技术探索:AI智能体视觉(TVA,Transformer-based Vision Agent)是依托Transformer架构与“因式智能体”理论所构建的颠覆性工业视觉技术,是集深度强化学习(DRL)、卷积神经网络(CNN…

2026/7/14 6:13:25 阅读更多 →
【华为OD技术面试手撕真题】160、最长等差数列 | 手撕真题+思路参考+代码解析(C  C++  Java  Python  JS)(0ms)

【华为OD技术面试手撕真题】160、最长等差数列 | 手撕真题+思路参考+代码解析(C C++ Java Python JS)(0ms)

文章目录 一、题目 🎃题目描述 🎃样例1 二、代码参考 🎈C语言思路 🎉C语言代码 🎈C++语言思路 🎉C++代码 🎈Java语言思路 🎉Java代码 🎈Python语言思路 🎉Python代码 🎈JS语言思路 🎉JS代码 作者:KJ.JK 🍂个人博客首页: KJ.JK 🍂专栏介绍: 本…

2026/7/14 6:13:25 阅读更多 →
UniDDT:统一多模态AI架构实现视觉理解与生成一体化

UniDDT:统一多模态AI架构实现视觉理解与生成一体化

如果你正在关注多模态AI的最新进展,可能已经注意到一个明显的趋势:视觉理解(看图说话)和视觉生成(文生图)这两个任务,长期以来像是两条平行线。理解模型擅长分析图像内容但无法创造,…

2026/7/14 6:11:22 阅读更多 →

最新新闻

面向多智能体系统的统一认知协议栈设计与实现——以WSaiOS为例

面向多智能体系统的统一认知协议栈设计与实现——以WSaiOS为例

面向多智能体系统的统一认知协议栈设计与实现——以WSaiOS为例作者:东塬一老翁摘要: 随着人工智能从单一模型向多智能体协作系统演进,异构模块间的通信割裂与语义不一致问题成为制约系统可扩展性与鲁棒性的关键瓶颈。本文提出并定义了一种面向AI操作系统…

2026/7/14 7:51:53 阅读更多 →
3步掌握RWTS-PDFwriter:macOS用户的终极PDF打印解决方案

3步掌握RWTS-PDFwriter:macOS用户的终极PDF打印解决方案

3步掌握RWTS-PDFwriter:macOS用户的终极PDF打印解决方案 【免费下载链接】RWTS-PDFwriter An OSX print to pdf-file printer driver 项目地址: https://gitcode.com/gh_mirrors/rw/RWTS-PDFwriter 还在为macOS上缺少简单高效的PDF打印驱动而烦恼吗&#xff…

2026/7/14 7:49:52 阅读更多 →
CentOS yum源配置与优化全指南

CentOS yum源配置与优化全指南

1. CentOS yum源配置基础认知在CentOS系统中,yum(Yellowdog Updater Modified)是RPM包管理器的前端工具,它通过自动解决依赖关系来简化软件安装过程。而yum源则是包含大量RPM软件包的软件仓库,系统通过读取这些仓库的元…

2026/7/14 7:47:52 阅读更多 →
光伏发电GHI估算的无监督学习方法与实践

光伏发电GHI估算的无监督学习方法与实践

1. 光伏功率测量与全局水平辐照度估算的背景与挑战在光伏发电系统中,准确估算全局水平辐照度(GHI)是评估系统性能和预测发电量的关键环节。传统方法通常依赖地面气象站或卫星遥感数据,但这些方法存在成本高、空间分辨率有限等问题…

2026/7/14 7:45:52 阅读更多 →
micro-analytics-cli API完全手册:掌握数据追踪与查询的核心方法

micro-analytics-cli API完全手册:掌握数据追踪与查询的核心方法

micro-analytics-cli API完全手册:掌握数据追踪与查询的核心方法 【免费下载链接】micro-analytics-cli Public analytics as a Node.js microservice. No sysadmin experience required! 📈 项目地址: https://gitcode.com/gh_mirrors/mi/micro-analy…

2026/7/14 7:45:52 阅读更多 →
Unity渐变纹理Shader:从原理到实战,打造高级UI与特效视觉

Unity渐变纹理Shader:从原理到实战,打造高级UI与特效视觉

1. 项目概述:为什么渐变纹理是UI与特效的“氛围感”利器在游戏和交互应用的视觉呈现中,我们常常陷入一种“非黑即白”的困境:一个按钮要么是纯色,要么是静态贴图;一个特效要么是生硬的边缘,要么是突兀的闪烁…

2026/7/14 7:45:52 阅读更多 →

日新闻

AI Agent数据越界行为如何被精准溯源?——基于GDPR/CCPA双合规的5层审计框架实战指南

AI Agent数据越界行为如何被精准溯源?——基于GDPR/CCPA双合规的5层审计框架实战指南

更多请点击: https://kaifayun.com 第一章:AI Agent数据越界行为的合规性挑战与溯源必要性 AI Agent在自主执行任务过程中,可能因提示注入、上下文污染或权限配置缺陷,无意或有意访问、缓存、传输受保护数据(如PII、G…

2026/7/14 0:01:13 阅读更多 →
Perplexity vs ChatGPT vs Claude:实测127组复杂查询任务,谁才是真正可靠的“事实型AI助手”?

Perplexity vs ChatGPT vs Claude:实测127组复杂查询任务,谁才是真正可靠的“事实型AI助手”?

更多请点击: https://codechina.net 第一章:Perplexity 怎么用 Perplexity 是衡量语言模型预测能力的核心指标,数值越低表示模型对文本序列的不确定性越小、预测越精准。它本质上是交叉熵损失的指数形式,计算公式为:…

2026/7/14 0:01:13 阅读更多 →
全球首发!五一视界定制物理AI卫星ECS-1剑指万亿赛道

全球首发!五一视界定制物理AI卫星ECS-1剑指万亿赛道

五一视界发布公告,近日,公司与环天智慧科技股份有限公司(“环天智慧”)正式达成空天领域战略合作。环天智慧是国内领先、聚焦天基对地观测遥感卫星总体研制与在轨运营的商业航天企业,同时也是西南地区规模最大、具备全自主可控遥感卫星星座建…

2026/7/14 0:03:13 阅读更多 →

周新闻

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨 在一个阳光明媚的上午,互联网大厂的面试官坐在桌前,准备迎接他的面试候选人——燕双非,一个以搞笑和幽默著称的程序员。第一轮提问 面试官:燕双非,作…

2026/7/13 4:38:36 阅读更多 →
车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估在智能驾驶和车联网技术快速发展的今天,车载以太网作为新一代车载网络的核心传输技术,其物理层性能直接决定了数据传输的可靠性和稳定性。1000BASE-T1作为当前主流的…

2026/7/13 4:38:38 阅读更多 →
VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战指南嵌入式开发领域正经历一场工具链的静默革命。当传统Keil用户首次打开VSCode的扩展市场搜索EIDE时,往往会惊讶于这个看似简单的插件竟能重构十余年的开发习惯。本文将揭示如何用五个精准步骤&#xff0…

2026/7/14 7:15:24 阅读更多 →

月新闻