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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

字符以及字符串函数

字符以及字符串函数 求字符串长度strlen 长度不受限制的字符串函数strcpystrcatstrcmp 长度受限制的字符串函数strncpystrncatstrncmp 字符串查找strstrstrtok 错误信息报告strerror 字符分类函数字符转换函数tolowertoupper 内存操作函数memcpymemmovememcmpmemset 这篇文章注…

Ubuntu(Linux)Windows 网络连接问题

需求&#xff1a;实现Ubuntu和Windows系统间以太网连接。 Windows端口以太网配置选择IPv4&#xff0c;配置自己的IP&#xff0c;子网掩码不需要填&#xff0c;系统自动补全&#xff0c;默认网关不需要填。 Ubuntu系统为22.04&#xff0c;如果使用网络设置完成IPv4地址设置&…

日本住宅IP:安全、高效的新选择

在信息化社会&#xff0c;网络已成为人们工作、生活不可或缺的一部分。而IP地址&#xff0c;作为网络中的身份证&#xff0c;其重要性不言而喻。近年来&#xff0c;随着跨境业务、网络安全需求以及个人隐私保护意识的增强&#xff0c;日本住宅IP代理逐渐进入人们的视野&#xf…

分布式事务技术方案

什么是分布式事务 一次课程发布操作需要向数据库、redis、elasticsearch、MinIO写四份数据&#xff0c;这里存在分布式事务问题。 什么是分布式事务&#xff1f; 首先理解什么是本地事务&#xff1f; 平常我们在程序中通过spring去控制事务是利用数据库本身的事务特性来实现…

如何远程控制另一部手机:远程控制使用方法

在现今高科技的社会中&#xff0c;远程控制手机的需求在某些情境下变得越来越重要。不论是为了协助远在他乡的家人解决问题&#xff0c;还是为了确保孩子的在线安全&#xff0c;了解如何实现这一功能都是有益的。本文将为您简要介绍几种远程控制手机的方法及其使用要点。 KKVi…

模电·场效应管放大电路的三种接法

场效应管放大电路的三种接法 场效应管的源极、栅极和漏极与晶体管的发射极、基极和集电极相对应因此在组成放大电路时也有三种接法&#xff0c;即共源放大电路、共漏放大电路和共栅放大电路。以N沟道结型场效应管为例&#xff0c;三种接法的交流通路如图1.所示。 图1. 场效应管…

每日一题8:Pandas-改变数据类型

一、每日一题 编写一个解决方案来纠正以下错误&#xff1a; grade 列被存储为浮点数&#xff0c;将它转换为整数。 返回结果格式如下示例所示。 解答&#xff1a; import pandas as pddef changeDatatype(students: pd.DataFrame) -> pd.DataFrame:students[grade] studen…

python爬虫(三)之虎嗅网汽车文章爬虫

python爬虫&#xff08;三&#xff09;之虎嗅网汽车文章爬虫 闲来没事&#xff0c;闲鱼上有个好兄弟要我从虎嗅网上抓一些汽车文章的爬虫&#xff0c;于是大力出奇迹&#xff0c;我写了一个python程序&#xff0c;将这个网站上所有的汽车文章全部抓取下来了&#xff0c;存储到…

【程序设计和c语言-谭浩强配套】(适合专升本、考研)

一晃大半年没更新了&#xff0c;这一年一直在备考&#xff0c;想着这几天把前段时间学的c语言给大家分享一下&#xff0c;在此做了一个专栏&#xff0c;有需要的小伙伴可私信获取o。 简介&#xff1a;本专栏所有内容皆适合专升本、考研的复习资料&#xff0c;本人手上也有日常…

泰迪智能科技企业数据挖掘流程分析及特色服务优势

企业发展会沉淀大量的数据&#xff0c;数据中囊括了企业业务各种维度指标&#xff0c;通过数据挖掘和数据分析 &#xff0c;让企业业务了解过去、现在和未来将要发生什么&#xff0c;从而更好的调整企业发展方向。泰迪智能科技企业数据挖掘平台是面向企业级用户快速处理数据构建…

《引爆流量获客技术》实操方法,手把手教你搭建盈利流量池

[1]-先导课.mp4 [2]-第1节&#xff1a;设计客户终身价值的方法和买客户思维.mp4 [3]-第2节&#xff1a;【渠道模型】解决谁是我的客户如何找到.mp4 [4]-第3节&#xff1a;【诱饵模型】解决 如何获得更多的客户.mp4 [5]-第4节&#xff1a;【钩子模型】解决让目标客户主动找你…

华为OD机试 - 反射计数 - 矩阵(Java 2024 C卷 200分)

华为OD机试 2024C卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷C卷&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;每一题都有详细的答题思路、详细的代码注释、样例测试…

加密 加签

加密&#xff1a;一种通过将数据转换成不可读形式的方法&#xff0c;以防止未授权的访问 加签&#xff1a;侧重于验证数据的完整性和来源的真实性&#xff0c;确保数据未被篡改且来源可靠 加密和加签的区别 加密加签目的保护数据的机密性验证数据的完整性和来源的真实性使用方…

游戏新手村24:游戏数据分析的思路及方法

在手机游戏和友盟统计、百度统计诞生之前&#xff0c;很多的游戏公司都是团队自己开发相关的数据统计平台&#xff0c;设定不同的角色和权限&#xff0c;满足业务部门同事的需要&#xff0c;为运营决策提供支持和依据。 近两年手机游戏和移动APP兴起&#xff0c;友盟统计和百度…

有什么方便实用的黏土特效教程?6个软件教你快速进行特效制作

有什么方便实用的黏土特效教程&#xff1f;6个软件教你快速进行特效制作 作为时尚小达人&#xff0c;你自己是否想要制作出属于自己的黏土特效照片呢&#xff1f;比如下面几种。 看到这些黏土特效软件有没有心动&#xff0c;下面我也为大家详细的介绍一下可以制作出对应特效的…

鸿蒙OpenHarmony开发板解析:【特性配置规则】

特性 特性配置规则 下面介绍feature的声明、定义以及使用方法。 feature的声明 开发前请熟悉鸿蒙开发指导文档&#xff1a;gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 在部件的bundle.json文件中通过feature_list来声明部件的feature列…

抽象类基本概念

抽象类及抽象方法 概念&#xff1a;一个类中没有包含足够的信息来描绘一个具体的对象&#xff0c;这种类被定义为抽象类&#xff0c;含有抽象方法的类也被称为抽象类。 用通俗的话来说就是当一个类的某个功能&#xff08;方法&#xff09;实现不确定时&#xff0c;我们就将该…

如何在40分钟之内,又快又准完成四六级阅读柯桥考级英语培训

答题步骤和技巧 1 选词填空 选词填空部分字数在200~300之间&#xff0c;设有10个空&#xff0c;提供15个备选项&#xff0c;从中选出最合适答案。选词填空题相对于普通的完型题简单&#xff0c;但是考察内容基本一致。集中考察的点有语法现象&#xff0c;逻辑衔接和搭配。每空…

mamba-ssm安装卡着不动

项目中用到Mamba的小伙伴&#xff0c;causal_conv1d和 mamba-ssm两个包&#xff0c;但是会卡在Building wheel for mamba-ssm (setup.py) &#xff1a; 为了探究卡在了building的哪一步&#xff0c;加入–verbose进行显示&#xff1a; pip install mamba-ssm --no-cache-dir -…

【MySQL数据库开发设计规范】之命名规范

欢迎点开这篇文章&#xff0c;自我介绍一下哈&#xff0c;本人姑苏老陈 &#xff0c;是一名JAVA开发老兵。 本文收录于 《MySQL数据库开发设计规范》专栏中&#xff0c;该专栏主要分享一些关于MySQL数据库开发设计相关的技术规范文章&#xff0c;定期更新&#xff0c;欢迎关注&…