| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> 【Qt】一文总结Qt序列式容器类—QList -> 正文阅读 |
|
[C++知识库]【Qt】一文总结Qt序列式容器类—QList |
一文总结Qt序列式容器类—QList文章目录一、QList简介在Qt中,QList类是一个提供列表的模板类,在开发中,也是一个较为常用的序列式容器类。 ? 在QList内部,如果 ? 【注意】如果QList表示为一个T*数组,那么每个新项的追加或插入都需要在堆上分配新项,在这种情况下,QVector比QList更适合做这件事:QVector可以在一个堆分配中为许多项分配内存,这种分配使QVector成为做大量附加或插入操作的最佳选择,所以在此应用场景下QVector是一个很好的选择。 在QList生命周期内,内部数组只会变大,不会减小。当一个列表被分配给另一个列表时,析构函数和赋值操作符才释放QList的内部数组。 二、QList使用方法(2-1)直接创建QList对象:
(2-2)创建并初始化QList对象:
三、QList常使用的成员函数(3-1)向QList中插入项
?
?
? (3-2)移除QList中的项
? removeAt()移除索引位置i的元素。i必须是列表中一个有效的索引位置(即:0 <= i < size())。
? removeFirst()函数将删除列表中的第一个项。调用该函数相当于调用removeAt(0)。注意:列表不能为空,如果列表可以为空,则在调用此函数之前需调用isEmpty()函数进行判断。
? removeLast()删除列表中的最后一项。调用这个函数相当于调用
? removeOne()将移除列表中第一个出现的value。即如果列表中存在多个value,调用该函数将移除第一个value,其余的不受到影响。 (3-3)移动QList中的项
? move()函数作用将位于from索引位置的项从索引移动到to表示的位置。注意:为了移动成功,需确保from和to两个参数值大于0且小于列表的size()大小值; (3-4)访问QList中的项
at()函数用于返回列表中索引位置i处的项。i必须是一个有效的索引位置值(即:0 <= i< size())。例如以下代码:
注:该函数比 ? 在实际应用中,很多时候需要从列表中删除一个项并对其进行操作。QList提供了takeAt()、takeFirst()和takeLast()成员函数供我们选择。
?
? takeFirst()移除列表中的第一项并返回它。该函数和takeAt(0)是一样的。为了避免该函数执行失败,在调用这个函数之前需调用isEmpty()进行检查。 ?
? takeLast()函数将移除列表中的最后一项并返回它。该函数与 (3-5)查找QList中的项
? indexOf()函数返回列表中第一个值出现的索引位置,从from索引位置向前搜索。如果没有匹配项,则返回-1。
? lastIndexOf()函数返回列表中最后一个值出现的索引位置,从索引位置向后搜索。如果from是-1(默认值),则从最后一项开始搜索。如果没有匹配项,则返回-1。
? contains()函数用于检查列表中是否包含一个值,如果包含,则返回true;否则返回false;
? count()函数返回列表中的项数,该函数实际上与size()相同。
? 该函数用于检查列表中value出现的次数。注意:此函数要求value的类型实现了operator==()操作!! 四、QList使用注意事项? (4-1)QList的值类型必须是可分配的数据类型。对于Qt来说,这已经涵盖了大多数常见数据类型,但是编译器不允许将QWidget存储为值;所以在开发中,我们可以存储一个指向QWidget的指针QWidget * 。对于QList的少数成员函数还有附加的要求:例如indexOf()和lastIndexOf()传入的参数的值类型支持operate==()操作。 ? ? (4-2)QList不支持插入、前置、附加或替换自身值的引用。这样做可能导致应用程序崩溃,并显示错误消息。 ? (4-3)为了使QList尽可能高效执行,其成员函数在使用之前不验证它们的输入。除了isEmpty(),成员函数总是假定列表不是空的。将索引值作为参数的成员函数总是假设它们的索引值参数在有效范围内。这意味着QList成员函数可能会失败。如果在编译时定义QT_NO_DEBUG,则不会检测到失败。如果没有定义QT_NO_DEBUG,则可以使用Q_ASSERT()或Q_ASSERT_X()和适当的打印消息来检测故障问题。总而言之,就是在使用QList的基于索引的成员函数时,需要使用 五、结尾关于QList更多类成员函数的功能和使用方法可参考官方文档:https://doc.qt.io/qt-5/qlist.html#count 本文总结了在实际Qt开发中,常使用到QList类的成员函数以及一些注意事项。 |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 2:40:36- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |