【Qt 开发基础体系】QMap 类和 QHash 类以及 QVector 类

文章目录

    • 1.QMap 详解
      • 1.1 QMap 的介绍
      • 1.2 QMap 的具体用法如下
      • 1.3 QmultiMap类
    • 2.QHash 详解
    • 3. QMap 和 QHash 的对比
    • 4. QVector 详解

1.QMap 详解

1.1 QMap 的介绍

🐧① QMap<key,T>提供一个从类型为Key的键到类型为T的值的映射。通常,QMap存储的数据形式是一个键对应一个值,并且按照键Key的次序存储数据。

🐧② 为了能够支持一键多值的情况,QMap提供QMap<key,T>:insertMulti ()QMap<key,T>::values ()函数。QMultiMap 类来实例化一个QMap对象。



1.2 QMap 的具体用法如下

  • 🍎插入信息的方式:
    在这里插入图片描述


  • 🍎删除信息,直接通过 key 键删除
    在这里插入图片描述


  • 🍎遍历 QMap 类的两种迭代方式
    在这里插入图片描述


  • 🍎通过 key来找T,或者通过T来找key,注意在QMap中,可以通过值来找键的哦🐧
    在这里插入图片描述


  • 🍎对T值进行修改,直接采取insert()进行插入覆盖即可
    在这里插入图片描述


  • 🍎查询是否包含某个键
    在这里插入图片描述


  • 🍎分别输出所有的 keyT值,放到 QList中进行输出
    在这里插入图片描述


1.3 QmultiMap类

  • 例如一个学生有学号、姓名、性别、年龄,这个时候就要用到一个键对应多个值的概念啦!直接用QmultiMap类即可。

在这里插入图片描述



2.QHash 详解

🐧① QHash<Key,T>具有与QMap几乎完全相同的API。QHash 维护着一张哈希表(Hash Table),哈希表的大小与QHash的数据项的数目相适应。

🐧② QHash任意的顺序组织它的数据。当存储数据的顺序无关紧要时,
建议使用QHash作为存放数据的容器。



🍎①QHash 存储数据,注意数据存入的顺序是任意的❗
在这里插入图片描述



🍎②用迭代器进行遍历 QHash
在这里插入图片描述



3. QMap 和 QHash 的对比

🐧Ⅰ. QHash 与 QMap 的功能差不多,但 QHash 的查找速度更快;

🐧Ⅱ.QMap 是按照键的顺序存储数据,而 QHash 是任意顺序存储的;

🐧Ⅲ.QMap 的键必须提供"<”运算符,而 QHash 的键必须提供“=="运算符和
一个名为 qHash()的全局散列函数。



4. QVector 详解

QVector <T>相邻的内存当中存储给定数据类型T的一组数值。在一个QVector 的前部或者中间位置进行插入操作的速度是很慢的,这是因为这样的操作将导致内存中的大量数据被移动,这是由QVector 存储数据的方式决定的。



🍎①插入数据,有两种方式
在这里插入图片描述



🍎②求出 QVector中元素的个数,以及遍历所有元素
在这里插入图片描述



🍎③元素的删除,可以控制删除一个区间的元素哦(只需要给出起始位置和删除的个数即可)🔍
在这里插入图片描述



🍎④判断容器是否包含某个元素
在这里插入图片描述


在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STC8增强型单片机开发【串口调试UART⭐⭐】

目录 一、引言 二、UART基础知识 三、STC8 UART配置 四、代码示例 上列代码中所需的库函数文件&#xff1a; 引入库函数的流程&#xff1a; 五、总结 一、引言 在单片机开发中&#xff0c;串口调试&#xff08;UART&#xff09;是一种常用的通信方式&#xff0c;用于实现…

LC719

719. 找出第 K 小的数对距离 719. 找出第 K 小的数对距离 - 力扣&#xff08;LeetCode&#xff09; 数对 (a,b) 由整数 a 和 b 组成&#xff0c;其数对距离定义为 a 和 b 的绝对差值。 给你一个整数数组 nums 和一个整数 k &#xff0c;数对由 nums[i] 和 nums[j] 组成且满足 …

linux grep命令搜索指定路径

在Linux开发的过程中grep这个搜索命令&#xff0c;是必不可少的存在。它可以快速的搜索出来我们需要的关键字所在的位置。 有助于我们快速分析定位问题。 下面&#xff0c;分享一个简单实用的小技巧。 原始grep 最终grep grep过滤掉二进制的文件 -I选项 结论 这样子是不…

126.删除链表的倒数第N个节点(力扣)

题目描述 代码解决&#xff08;双指针&#xff09; /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, Li…

【QT教程】QT6信号与槽 QT信号与槽

QT6信号与槽 使用AI技术辅助生成 QT界面美化视频课程 QT性能优化视频课程 QT原理与源码分析视频课程 QT QML C扩展开发视频课程 免费QT视频课程 您可以看免费1000个QT技术视频 免费QT视频课程 QT统计图和QT数据可视化视频免费看 免费QT视频课程 QT性能优化视频免费看 免费QT视…

C++-Primer-Plus 习题解答(第十六章-string类和标准模板库)

题目&#xff1a;16.1 回文指的是顺读和逆读都一样的字符串。例如&#xff0c;“tot”和“otto”都 是简短的回文。编写一个程序&#xff0c;让用户输入字符串&#xff0c;并将字符串引用传 递给一个bool函数。如果字符串是回文&#xff0c;该函数将返回true&#xff0c;否则返…

全视通助力珠海市井岸镇卫生院新院,建设智慧病房

5月6日&#xff0c;位于珠海市斗门区的井岸镇卫生院新院正式启用&#xff0c;面向市民开诊。新院各诊区就医秩序井然&#xff0c;总体情况良好。据统计&#xff0c;截至开诊当天11点30分&#xff0c;新院门诊共接诊347人次&#xff0c;预防接种81人次&#xff0c;儿童体检33人次…

网络相关笔记

IPv4地址 IPv4地址通常以“点分十进制”形式书写&#xff0c;即四个0-255之间的十进制数&#xff0c;各数之间用英文句点&#xff08;.&#xff09;分隔&#xff0c;例如&#xff1a;192.0.2.1。总共32位的地址空间可以表示大约42亿个不同的地址。 IPv4地址结构包括&#xff…

HashSet扩容机制

HashSet底层是HashMap,第一次添加的时候,table数组扩容到16,临界值是16*加载因子(默认是0.75),到达临界值进行扩容。 HashSet<Integer> hashSet = new HashSet<>();hashSet.add(5);hashSet.add(2);hashSet.add(5);hashSet.add(8);hashSet.add(1);当new一个H…

【C++STL详解(十)】--------priority_queue的模拟实现

目录 前言 一、堆的向上调整算法 二、堆的向下调整算法 三、优先队列模拟实现 Ⅰ、接口总览 Ⅱ、各个接口实现 1.构造函数 2.仿函数 3.向上调整 4.向下调整 5.其余接口 Ⅲ、完成代码 前言 上节内容我们简单的介绍了关于priority_queue的使用内容&#xff0c;我们明白…

秒杀系统架构设计-01

前言 在当今互联网技术快速发展的背景下&#xff0c;电商平台的秒杀活动成为了一个热门话题。特别是对于技术人员而言&#xff0c;如何设计一个高效、可靠的秒杀系统架构&#xff0c;已经成为了面试中的常见问题。这篇博文将围绕秒杀系统架构设计的大纲和授课思路&#xff0c;…

【TypeScript高级类型简介以及使用方法】

TypeScript 的高级类型提供了更复杂的类型系统&#xff0c;允许开发者更精确地描述和约束代码中的数据类型。以下是几种常用的 TypeScript 高级类型及其简介和使用方法&#xff1a; 交叉类型&#xff08;Intersection Types&#xff09; 交叉类型是将多个类型合并为一个类型&…

Baidu Comate 编程插件:提升开发效率的利器

文章目录 引言简介目的 Baidu Comate插件概述定义与功能市场现状竞品分析 安装与配置VsCode 安装&#xff1a;注意事项 版本选择 核心特性详解功能介绍代码生成实时续写错误纠正 使用体验体验地址 引言 简介 基于文心大模型&#xff0c;结合百度积累多年的编程现场大数据和外…

三维dp,LeetCode 741. 摘樱桃

一、题目 1、题目描述 给你一个 n x n 的网格 grid &#xff0c;代表一块樱桃地&#xff0c;每个格子由以下三种数字的一种来表示&#xff1a; 0 表示这个格子是空的&#xff0c;所以你可以穿过它。1 表示这个格子里装着一个樱桃&#xff0c;你可以摘到樱桃然后穿过它。-1 表示…

设计一个people类 如何输入用户自定义个数的对象?

题目: 设计一个People 类&#xff0c;该类的数据成员有姓名、年龄、身高、体重和人数&#xff0c;其中人数为静态数据成员&#xff0c;成员函数有构造函数、显示和显示人数。其中构造函数由参数姓名、年龄、身高和体重来构造对象&#xff1b;显示函数用于显示人的姓名、年龄、…

PDF批量编辑:PDF转HTML批量操作技巧,提升文档格式转换效率

在数字化办公日益普及的今天&#xff0c;PDF&#xff08;Portable Document Format&#xff09;作为一种跨平台的文件格式&#xff0c;广泛应用于各种文档的存储和传输。然而&#xff0c;PDF文件的不可编辑性使得在某些情况下&#xff0c;我们需要将其转换为HTML格式以便更好地…

蓝桥杯备赛1.统计单词数

题目链接&#xff1a;P1308 [NOIP2011 普及组] 统计单词数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) #include<bits/stdc.h> #define int long long #define endl \n const int N 1e510; using namespace std; int a[N]; signed main() {std::ios::sync_with_st…

【国产SSL】哪家SSL证书可以保证数据不出境,是在国内验签

随着网络安全的重视&#xff0c;网站安装SSL证书已经是标配了。但是为什么目前常见的SSL证书都是国外的&#xff1f;数据受国外掌控&#xff0c;安全吗&#xff1f;那么哪家国产品牌是可以保证数据不出境的呢&#xff1f; 为什么目前常见的SSL证书都是国外的&#xff1f; 原因…

您的计算机已被360勒索病毒感染?恢复您的数据的方法在这里!

引言 .360勒索病毒&#xff0c;作为BeijingCrypt勒索病毒家族的一员&#xff0c;因其独特的加密技术和狡猾的传播方式&#xff0c;已成为网络安全领域的重大威胁。它不仅能加密用户的重要文件&#xff0c;使文件无法被正常访问和使用&#xff0c;还可能进一步破坏系统&#xf…

ssh连接服务器教程,账号密码登陆和通过密钥直接登陆

ssh如何连接服务器&#xff1f; 两种连接方式 通过账号密码登陆通过密钥直接登陆 通过账号密码登陆 在终端使用命令登陆&#xff1a;ssh [服务器用户名][服务器ip或服务器域名]之后输入服务器用户密码即可登陆 通过密钥直接登陆 首先在本地创建自己的私钥公钥&#xff0c…