【qt】容器的用法

embedded/2024/10/21 6:06:31/

容器目录

  • 一.QVertor
    • 1.应用场景
    • 2.增加数据
    • 3.删除数据
    • 4.修改数据
    • 5.查询数据
    • 6.是否包含
    • 7.数据个数
    • 8.交换数据
    • 9.移动数据
    • 10.嵌套使用
  • 二.QList
    • 1.应用场景
    • 2.QStringList
  • 三.QLinkedList
    • 1.应用场景
    • 2.特殊点
    • 3.用迭代器来变量
  • 四.QStack
    • 1.应用场景
    • 2.基本用法
  • 五.QQueue
    • 1.应用场景
    • 2.基本用法
  • 总结:

一.QVertor

1.应用场景

QVertor的底层实现是数组,所以说它的查询速度贼快
但是插入和删除就非常慢,需要移动大量的数据

因此你需要查询快,同时不怎么插入和删除,那么QVertor你值得拥有

2.增加数据

尾部添加:1.<< 2.append 3.push_back
头部添加: push_front
任意位置添加:insert(位置,数据)

在这里插入图片描述
运行结果:
在这里插入图片描述

3.删除数据

remove(下标号)
removeOne(数据值)
takeAt(下标号)

在这里插入图片描述
运行结果:
在这里插入图片描述

4.修改数据

因为底层是数组,可以通过下标访问进行修改
可以通过replace(下标号,值)修改

在这里插入图片描述
运行结果:
在这里插入图片描述

5.查询数据

可以通过下标直接查询
还可以通过indexOf(数据)获取数据的下标值

在这里插入图片描述
运行结果:
在这里插入图片描述

6.是否包含

contains(数据)

在这里插入图片描述
运行结果:
在这里插入图片描述

7.数据个数

count(数据),括号里面的数据在容器中有几个
count(),该容器总的个数

在这里插入图片描述
运行结果:
在这里插入图片描述

8.交换数据

swapItemsAt(下标号,下标号)

在这里插入图片描述
运行结果:
在这里插入图片描述

9.移动数据

move(下标号,下标号)

在这里插入图片描述
运行结果:
在这里插入图片描述

10.嵌套使用

容器里面再使用一个容器,相当于二维数组

在这里插入图片描述
运行结果:
在这里插入图片描述

二.QList

1.应用场景

QList的底层原理是指针数组,本质上也是一个数组,只不过里面放在指针,指针指向真正的数据。
查询和QVector差不多,但是插入和删除要快一些

所以没做特殊要求时,一般用QList

有了QVector的前车之见,现在就简单了,增删改查的接口基本一样,记住一套用法就足够了。
如果还想知道更多可以在Qt里鼠标放在容器上,按F1进入在线文档查看。

2.QStringList

上节课咱们的字符串分隔符split就是返回的QStringList容器来装分割后的字符串。
QStringList是QList< QString >的子类,其实差不多,只是为了方便。

三.QLinkedList

1.应用场景

QLinkedList的底层实现是双向链表,这样插入和删除的速度就非常快,但是查询慢。

因此需要大量查询的时候,可以用QLinkedList

2.特殊点

  • 因为底层不是数组,所以不能使用下标符进行访问了。
  • 所以说对一些需要下标号位置的接口就不能使用了
    如:remove()不能通过下标的方式,takeAt()等等
  • insert插入只能使用迭代器进行插入

在这里插入图片描述
运行结果:
在这里插入图片描述

3.用迭代器来变量

在这里插入图片描述
运行结果:
在这里插入图片描述
c++里面迭代器你们应该都知道吧。我就不讲了,以后我可能会出c++的教程,但是可能有点久哦,俏皮笑。

四.QStack

1.应用场景

底层实现是栈,是一种特殊的顺序表,先进后出,类似于这样
在这里插入图片描述

2.基本用法

进栈是1,2,3进的
在这里插入图片描述
出是3,2,1出的:
在这里插入图片描述

五.QQueue

1.应用场景

底层的实现机制是队列,这个在现实生活中就非常常见了,就类似于我们生活中的排队。

先来后到,先进先出

2.基本用法

1,2,3的顺序排序进队
在这里插入图片描述
1,2,3的顺序出队列:
在这里插入图片描述

总结:

容器可以理解是一个用来装数据的盒子。
重要的是我们要知道要用什么样的盒子,装什么样的数据。
至于增删改查的用法,知一遍知其二。
所以说应用场景一定要深刻理解。

路漫漫其修远兮,吾将上下而求索。


http://www.ppmy.cn/embedded/38769.html

相关文章

python-调用js代码

安装 pip3 install PyExecJS -i https://pypi.tuna.tsinghua.edu.cn/simple/ 查看node引擎 print(execjs.get()) 必须要是ExternalRuntime(Node.js (V8))&#xff0c;不是要重新安装pycharm 不带参数 import execjs js_data function aa(){return 123}#compile 编译js js e…

Qt | QValidator 抽象类(验证器)及其子类|QDoubleValidator 类|QIntValidator 类

01、上节回顾 Qt | QComboBox(组合框)Qt | QLineEdit 类(行编辑器)02、QValidator 1、QValidator 类直接继承自 QObject 类,且是一个抽象类,因此具体功能主要由其子类来实现,或者子类化该类实现自定义的验证器。 2、验证器的作用是验证用户输入的

2025第23届太原煤炭(能源)工业技术与装备展览会

第二十三届太原煤炭&#xff08;能源&#xff09;工业技术与装备展览会 邀 请 函 指导单位&#xff1a; 中国煤炭工业协会 主办单位&#xff1a;山西省煤炭工业协会 承办单位&#xff1a;太原奇新展览有限公司 展览时间&#xff1a;2025年4月22-24日 展览地点&#xff1a…

代码随想录Day23

530.二叉搜索树的最小绝对差 题目&#xff1a;530. 二叉搜索树的最小绝对差 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a;需要两两做差&#xff0c;层序遍历之后套两个for循环&#xff1f;应该可以利用一下二叉搜索树的特点&#xff0c;遍历每一个节点&#xff0c…

C#中的引用参数

在C#中&#xff0c;引用参数使得方法能够修改调用者的变量值&#xff0c;而不是修改变量的副本。为了使用引用参数&#xff0c;方法的参数前需要加上ref关键字。 以下是一个使用引用参数的简单例子&#xff1a; public void Swap(ref int x, ref int y) {int temp x;x y;y …

调用 gradio 创建聊天网页报错(使用远程服务器)

文章目录 写在前面1、使用默认IP地址&#xff08;失败&#xff09;2、使用本地IP地址&#xff08;失败&#xff09;3、使用远程服务器IP地址&#xff08;成功&#xff09; 写在前面 我复现了github上的 llama-chinese 的工作 使用的是 llama2&#xff0c;环境配置是在远程服务…

CSS:overflow作用

overflow作用 介绍常用值举例1. 使用 overflow: hidden 隐藏溢出内容2. 使用 overflow: scroll 总是显示滚动条3. 使用 overflow: auto 根据需要显示滚动条 总结 介绍 在Web开发中&#xff0c;overflow 是CSS&#xff08;层叠样式表&#xff09;的一个属性&#xff0c;用于控制…

【吃透Java手写】1- Spring(上)-启动-扫描-依赖注入-初始化-后置处理器

【吃透Java手写】Spring&#xff08;上&#xff09;启动-扫描-依赖注入-初始化-后置处理器 1 准备工作1.1 创建自己的Spring容器类1.2 创建自己的配置类 ComponentScan1.3 ComponentScan1.3.1 Retention1.3.2 Target 1.4 用户类UserService Component1.5 Component1.6 测试类 2…