【qt】联合容器和集合容器

联合容器和集合容器

  • 一.QMap
    • 1.应用场景
    • 2.添加数据
    • 3.删除数据
    • 4.修改数据
    • 5.查找数据
    • 6.数据个数
    • 7.是否包含
    • 8.返回所有的键名
  • 二.QHash
    • 1.应用场景:
  • 三.QMultiMap
  • 四.QMultiHash
  • 五.QSet
    • 1.应用场景
    • 2.交集
    • 3.并集
    • 4.差集
  • 总结:

一.QMap

1.应用场景

QMap的底层实现是用的平衡二叉树(红黑树),是一种有序的关联容器。
键可以理解为一种索引值,如现实生活中的身份证号,一个身份证号只能对应一个公民。
键与值是一种一一对应的关系。

QMap是以键值对的形式进行保存数据.只能一个键对应一个值。

2.添加数据

通过insert插入键值对

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

3.删除数据

用remove(键),对应的值也会一同被删除

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

4.修改数据

因为键与值是一一对应的,所以要修改值,可以通过重新插入覆写里面的值。

在这里插入图片描述

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

还可以通过找到键的迭代器然后进行修改

在这里插入图片描述

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

5.查找数据

因为QMap是有序的,所有我们可以同过[键]来查找值。
也可以通过value()这个接口来查找。

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

还可以通过find()查找,不过返回的是迭代器,需要*解引。

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

6.数据个数

count(),查键的个数只能是1。因为一对一关系。

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

7.是否包含

contains()

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

8.返回所有的键名

keys(),将建名保存在一个QList< QString >中。

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

二.QHash

1.应用场景:

QHash的底层实现是用的哈希表,也是存放的键值对,只不过是无序的。

查找的速度快,插入的速度也快

接口与QMap完全相同!

三.QMultiMap

Multi是多的意思,上面咱们不是说一个键只能对应一个值,这里则不然,一个键可以对应多个值,就像一个渣女的有多个男朋友一样
在这里插入图片描述
运行结果:
在这里插入图片描述
注意:

  • 此时就不能通过这种方式进行查找了
    在这里插入图片描述

  • 删除时如果不指定值,将全部删除相同的键
    在这里插入图片描述
    运行结果:
    在这里插入图片描述

  • values可以得到一个键对应的所有的值
    在这里插入图片描述
    运行结果:
    在这里插入图片描述

四.QMultiHash

和QMultiMap基本一样。

五.QSet

1.应用场景

集合大家应该都知道吧,我记得我是高一学过,我们就生活在一个个集合之中。

一个集合,不可能有两个一模一样的我,所以集合具有唯一性

底层的实现用的是哈希表,但是存储的数据不是键值对,而是一个值。

2.交集

接口几乎与哈希差不多,来讲讲不同的,首先并集
拿出我的小学的画画水平
在这里插入图片描述

用intersect(),对参数不会参数影响

来看看代码怎么实现:
在这里插入图片描述
运行结果:
addr2不变,addr变成两个所共有的
在这里插入图片描述

3.并集

就是将你我的都全部合起来。
在这里插入图片描述
代码:

用unite()

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

4.差集

就是我所特有的
在这里插入图片描述

subtract()

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

总结:

OK,到这里咱们的容器也就讲完了,接口确实很多,但是大部分都是通用的,因此不比害怕。
更重要的是知道我们该如何去选择合适的容器。

一般底层是类似数组的就查询快
底层实现里面有指针的就插入删除快
一般需要键值的就用联合容器
需要唯一性的就集合容器等等

谢谢你的阅读,希望能帮到你。
雷军是我偶像,永远相信美好的事情即将到来!在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/613561.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

智能座舱语音助手产品方案

一、用户调研与痛点分析 1.目标用户分析 用户画像 性别女性年龄50地域2-3线城市职业退休或退居二线教育中专、 大专、 本科财务家庭财务管理者爱好享受生活、 照顾家庭标签有闲有小钱二、产品定位与卖点提炼 购车目的 愉悦自我&#xff0c; 专属于自己的座驾&#xff1a; 家…

接口自动化入门: Requests请求头设置详解!

在进行接口自动化测试时&#xff0c;设置请求头是非常重要的一步。请求头可以包含各种信息&#xff0c;例如身份验证、内容类型、接受语言等。在实际的测试中&#xff0c;我们使用Python的Requests库来发送HTTP请求&#xff0c;并设置请求头来模拟不同的场景和需求。 下面将通…

【系统架构师】-案例篇(八)数据流图

数据流&#xff1a;数据流是系统中数据的流动&#xff0c;它可以是输入、输出或存储在系统中的数据。 数据处理过程&#xff1a;数据处理过程是对数据进行处理的单元&#xff0c;可以是一个物理设备或软件模块。 数据存储&#xff1a;数据存储是系统中存储数据的单元&#xff0…

共享云桌面如何助力企业信息化和数字化?

随着科技的飞速发展&#xff0c;信息化和数字化已经成为企业转型的重要方向。共享云桌面作为一种新兴的信息化工具&#xff0c;正以其独特的优势助力企业实现信息化和数字化的目标。本文将详细探讨共享云桌面如何助力企业信息化和数字化的过程&#xff0c;以及它所带来的效益。…

使用图网络和视频嵌入预测物理场

文章目录 一、说明二、为什么要预测&#xff1f;三、流体动力学模拟的可视化四、DeepMind神经网络建模五、图形编码六、图形处理器七、图形解码器八、具有不同弹簧常数的轨迹可视化九、预测的物理编码和推出轨迹 一、说明 这是一篇国外流体力学专家在可视化流体物理属性的设计…

vcomp140.dll丢失怎么修复,四种vcomp140.dll丢失的修复办法

vcomp140.dll文件丢失可能会导致一些程序无法正常运行。这些程序通常是使用Microsoft Visual Studio 2015开发的&#xff0c;并且依赖于该动态链接库文件来处理并行计算相关的功能。一旦vcomp140.dll文件丢失或损坏&#xff0c;这些程序在启动或执行特定任务时可能会遇到各种问…

视频批量剪辑神器,一键修改尺寸,轻松打造专业视觉盛宴!

视频已经成为我们生活中不可或缺的一部分。无论是制作精美的短视频&#xff0c;还是编辑专业的宣传片&#xff0c;视频剪辑都是一项必不可少的工作。然而&#xff0c;面对大量的视频素材&#xff0c;如何高效地进行批量剪辑&#xff0c;特别是修改视频尺寸&#xff0c;成为了许…

【大华可见光摄像头】ffmpeg获取视频流并下载mp4 报错‘subtype‘ 不是内部或外部命令,也不是可运行的程序

我现在要通过ffmpeg获取大华摄像头视频流并下载成mp4&#xff0c;但我在cmd窗口运行下面命令的时候&#xff0c;发现报错&#xff1a; D:\Java\ffmpeg\ffmpeg-master-latest-win64-gpl\bin\ffmpeg.exe -y -i rtsp://admin:123xxx.xxx.xxx.xxx/cam/realmonitor?channel1&s…

[Kubernetes] Istio on Kubernetes 实践

文章目录 1.Kubernetes 创建2.Istio 部署2.1 下载 Istio2.2 安装 Istio 3.Istio on Kubernetes 实践3.1 部署 Bookinfo 示例应用3.2 确定入站 IP 和端口 1.Kubernetes 创建 主机名内部ip外部ipmaster192.168.66.2139.198.36.40node1192.168.66.3139.198.1.192node2192.168.66.…

SG-PEG-SG能与许多生物分子如蛋白质和核酸等进行有效结合

【试剂详情】 英文名称 SG-PEG-SG 中文名称 聚乙二醇二琥珀酰亚胺戊二酸酯&#xff0c; 琥珀酰亚胺酯-聚乙二醇-琥珀酰亚胺酯 外观性状 由分子量决定&#xff0c;固体或者液体。 分子量 0.4k&#xff0c;0.6k&#xff0c;1k&#xff0c;2k&#xff0c;3.4k&#xff0c;5…

(已解决)org.springframework.amqp.rabbit.support.ListenerExecutionFailedException

报错截图 解决方案 1、登录rabbitMQ网址&#xff0c;删除所有队列 2、重启rabbitMQ 亲测有效&#xff01;&#xff01;&#xff01;亲测有效&#xff01;&#xff01;&#xff01;亲测有效&#xff01;&#xff01;&#xff01;

Java入门基础学习笔记4——开发Helloworld入门程序

Java程序开发的三个步骤&#xff1a; 1&#xff09;编写代码 2&#xff09;编译代码 3&#xff09;运行代码 注意事项&#xff1a; 第一个java程序建议使用记事本来编写。 建议代码文件名全英文、首字母大写、满足驼峰模式&#xff0c;源代码文件的后缀必须是.java 注意&a…

Nginx 从入门到实践(3)——负载均衡、反向代理、动静分离

Nginx代理服务 Nginx代理服务 Nginx代理服务Nginx负载均衡反向代理反向代理的用途 Nginx配置攻略Nginx动静分离使用 Nginx 实现四层代理配置基本介绍使用 Nginx 实现四层代理配置 Nginx负载均衡 负载均衡&#xff08;Load Balance&#xff09;是由多台服务器以对称的方式组成一…

js 数据格式转换,对象转数组,数组转对象

1.对象转数组 // 对象obj转换成数组格式 let obj { orgCode:分局编码, alertId:告警ID, name:告警名称 } let arr [] for(let key in obj) { console.log(11,key,obj[key]); // 定义一个对象&#xff0c;赋值 let o { id: key, // key是obj对象的键值 label: obj[key] …

半小时搞懂STM32面经知识点——系统架构与启动流程

1.Cortex-M系统 1.1系统结构 1.处理器核心&#xff1a; Cortex-M3 2.存储器系统&#xff1a; Flash&#xff0c;SRAM&#xff0c;FSMC等 3.总线接口&#xff1a; 核心通过总线接口与外设设备和存储器进行通信。 总线矩阵&#xff1a;总线矩阵是一种硬件结构&#xff0c;用于连…

减瘦误区、雷点、陷阱和挑战怎么应对

在减瘦过程中&#xff0c;很多肥胖人群都容易踩到坑。比如陷入误区&#xff0c;认为只有短期快速的减调方式方法&#xff0c;才值得尝试&#xff0c;而忽视身体健康&#xff1b;或是踩到雷点&#xff0c;轻信强速方剂或方法&#xff0c;结果身体产生了排斥或根本没效用白花钱&a…

经典文献阅读之--VoxFormer(基于Transformer的3D语义场景补全)

0. 简介 之前了解了很多BEV的相关操作&#xff0c;但是基本上要么是激光和视觉结合&#xff0c;要么是纯视觉完成的2D激光投影这两种&#xff0c;而那种3D Occupancy方法可以利用栅格的方法完成纯视觉占据栅格的生成。《VoxFormer: Sparse Voxel Transformer for Camera-based …

Redis如何避免数据丢失?——RDB

目录 1. RDB机制的配置 2. fork()函数和写时复制(Copy On Write&#xff09; 什么是Copy On Write 系统fork中使用Copy On Write机制 3. RDB文件结构 RDB文件内容和内容顺序 InfoAuxFields是rdb信息数据 数据库数据 数据 数据存储格式 字符串编码 操作码 4. RDB的2…

Measurement and Analysis of Large-Scale Network File System Workloads——论文泛读

ATC 2008 Paper 分布式元数据论文阅读笔记整理 问题 网络文件系统在当今的数据存储中发挥着越来越重要的作用。使用网络文件系统可以降低管理成本&#xff0c;从多个位置可靠地访问的数据。这些系统的设计通常以对文件系统工作负载和用户行为的理解为指导[12&#xff0c;19&a…