Qt 2 QMapQHashQVector类实例

1. QMap

   // 1:QMap的使用// 创建一个QMap 实例 key 为 QString value 为 intQMap<QString,int> Grade;// 插入方式有两种插入方式// 1.map[key] = valueGrade["语文"] = 90;Grade["数学"] = 120;// 2.map.insert(key,value);Grade.insert("英语",89);// 删除keyGrade.remove("语文");qDebug() << Grade ;// 普通打印qDebug() << Grade ;// 循环打印Map// 1.通过迭代器实现 (java类型实现)QMapIterator<QString,int> itr(Grade);// while循环输出while (itr.hasNext()){itr.next();qDebug() << itr.key() << itr.value();}qDebug() << endl;// 2.STL类型迭代器QMap<QString,int>::const_iterator stl_itr = Grade.constBegin();while(stl_itr != Grade.constEnd()){qDebug() << stl_itr.key() << stl_itr.value();stl_itr++;}// 在QMap中查找// 根据KEY 查找对应的值//1.qDebug() << Grade["数学"] <<endl;//2.qDebug() << Grade.value("数学") <<endl;// 根据值来查找KeyqDebug() << Grade.key(120);// 修改键值// 一个键对应一个值,调用insert 将覆盖原有的键Grade.insert("英语",118);qDebug() << Grade.value("英语") <<endl;// 判断键是否存在?qDebug() << Grade.contains("数学") <<endl;// 输出Qmap对象的键和值QList<QString> Keys = Grade.keys();QList<int> Values = Grade.values();qDebug() << "key: " << Keys;qDebug() << "value: " << Values;// 一个键对应多个值 QMultiMap 类QMultiMap<QString,QString> MultiMap;MultiMap.insert("stu","id");MultiMap.insert("stu","name");MultiMap.insert("stu","grade");MultiMap.insert("stu","sex");MultiMap.insert("stu","age");qDebug() << MultiMap;

2. QHash

QHash<Key,T>具有与 QMap ,几乎完全相同的 API.QHash 维护着一张哈希表(Hash Table),哈希表的大小与 QHash 的数据项的数目相适应。QHash 以任意的顺序组织它的数据。当存储数据的顺序无关紧要时,建议使用 QHash 作为存放数据的容器。

QMap 与 QHash 区别:QHash 与 QMap,的功能差不多,但 QHash 的查找速度更快;QMap,是按照键的顺序存储数据,而 QHash ,是任意顺序存储的QMap,的键必须提供"<”运算符,而 QHash的键必须提供“=="运算符和个名为 gHash0的全局散列函数,

 // QHash类QHash<QString,int> Hash;Hash["key 1"] = 3;Hash["key 1"] = 8;Hash["key 4"] = 9;Hash["key 2"] = 1;// 插入hash数据Hash.insert("key 3",30);// 获取键列表QList<QString> key_list = Hash.keys();// 循环打印for (int var = 0; var < key_list.length(); var++) {qDebug() << key_list[var] << "," << Hash[key_list[var]] <<endl;}// QHash内部的迭代器 QHashIterator 用法与 QMapIterator 一样QHash<QString,int> hash;hash["key 1"] = 3;hash["key 1"] = 8;hash["key 4"] = 9;hash["key 2"] = 1;QHash<QString,int>::const_iterator itr;for (itr=hash.begin(); itr!=hash.end(); itr++){qDebug() << itr.key() << ":" << itr.value() << endl;}

3. QVector

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

// QVector类// QVector<T> 是QT的一个容器类QVector<int> qvr;// QVector存储的第一种方式qvr << 10;qvr << 20;qvr << 30;// 第二种qvr.append(50);qvr.append(60);qvr.append(70);qDebug() << qvr << endl;// 查看QVector中的元素的个数qDebug() << qvr.count() << endl;// 删除Qvector中的元素qvr.remove(0);// 循环打印for (int i = 0; i < qvr.count(); i++) {qDebug() << qvr[i] << endl;}qDebug() << endl;// 从第二个元素开始 删除后面三个元素qvr.remove(2,3);// 循环打印for (int i = 0; i < qvr.count(); i++) {qDebug() << qvr[i] << endl;}// 判断是否包含元素 QVector::contains() -> boolqDebug() << qvr.contains(40) << endl;

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

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

相关文章

浅入浅出之nginx

目录 工作流程正向代理概念 反向代理概念 nginx反向代理配置文件介绍解释作用 参考文章Nginx 常用指令和操作启动 Nginx测试配置文件快速关闭 Nginx优雅关闭 Nginx重载配置文件查看版本查看编译时的参数查看进程配置用户访问日志配置错误日志设置 web 根目录配置 server 块配置…

LeetCode_1304.和为零的 N 个不同整数

题目&#xff1a; 题解&#xff1a; 题目说让我们返回一个由n个各不相同的整数组成的数组&#xff0c;相加为0。 这里的比较好的办法就是类似于 1 2 3 0 -3 -2 -1这样对称的数组。既满足要求&#xff0c;又好实现。 先calloc出一个容量为n的整型数组&#xff0c;定义两个变量…

解决java.lang.NoClassDefFoundError 问题

解决java.lang.NoClassDefFoundError 问题 一、背景二、分析三、解决 一、背景 项目运行成功之后&#xff0c;调用某个接口时报错,信息如下: 2024-04-17 14:59:23 [ERROR] --- [nio-8070-exec-1] c.c.c.e.LogExceptionHandleFilter : Handler dispatch failed; nest…

如何使用Git-Secrets防止将敏感信息意外上传至Git库

关于Git-Secrets Git-secrets是一款功能强大的开发安全工具&#xff0c;该工具可以防止开发人员意外将密码和其他敏感信息上传到Git库中。 Git-secrets首先会扫描提交的代码和说明&#xff0c;当与用户预先配置的正则表达式模式匹配时&#xff0c;便会阻止此次提交。该工具的优…

分布式光纤测温解决方案

安科瑞电气股份有限公司 祁洁 15000363176 一、方案介绍 分布式光纤测温&#xff08;DTS&#xff09;集光电信号检测、计算机技术等为一体&#xff0c;具有实时监测、测温精度高、测量距离长、可精确定位、采用光纤作为传感器和传输介质&#xff0c;具有抗电磁干扰、本征防…

项目文档维护(一) 快速生成项目结构图

IDEA快速生成项目树形结构图 1. 执行指令 在项目根目录下&#xff0c;进入cmd或terminal, 输入如下指令&#xff1a; tree . > tr.txt 只有文件夹 tree /f . > tr.txt 包括文件夹和文件注意尽量要使用idea, pycharm等ide, 其他工具需自己测试效果, 本人使用power …

详解网络通讯框架Netty原理,看这一篇就够了

NIO网络通信 网络通信BIONIOselectpollepollselect poll epoll对比 Netty原理Netty架构reactor响应式编程netty组件eventLoop 线程间交互Future接口Promise接口 Handler和PipelineByteBuf组成指针常用方法 网络通信 通过网络编程的基础可以知道&#xff0c;各设备通过I/O流写入…

如何阻止访问您的网站

本周有一个客户&#xff0c;购买Hostease的HK Basic Linux虚拟主机&#xff0c;询问我们的在线客服&#xff0c;如何阻止部分地区或IP段访问他的网站。我们为用户提供教程&#xff0c;用户很快完成了设置。在此&#xff0c;我们分享这个操作教程&#xff0c;希望可以对您有帮助…

Linux第88步_非阻塞IO实验

非阻塞IO是“应用程序”对“驱动设备”进行操作&#xff0c;若不能获取到设备资源&#xff0c;则非阻塞IO应用程序的线程不会被“挂起”&#xff0c;即线程不进入休眠&#xff0c;而是一直“轮询”&#xff0c;直到获取到设备资源为止&#xff0c;或者直接放弃。 非阻塞IO应用举…

Kubernetes Replication Controller及其相关知识点学习

Kubernetes Replication Controller (RC) 一、概念 Replication Controller (RC) 是 Kubernetes 中早期用于管理 Pod 副本数量和生命周期的控制器对象。尽管在后续版本中已经被 ReplicaSet 所替代并逐渐淡出主流使用&#xff0c;理解 Replication Controller 的概念及其功能对…

本地部署运行大模型ollama

本地部署运行大模型ollama ollama模型下载地址 在我使用 vscode 开发时&#xff0c;使用 coplit 或 chatgpt 来辅助过于昂贵&#xff0c;于是我希望找到一个可以调用本地大模型的工具来辅助编程。 ollama 就是这样一个工具。 ollama使用 ollama 是一个可以将训练好的模型部署到…

1688店铺商品接口全攻略:一键获取商品信息,轻松玩转电商数据!

1688店铺所有商品接口技术详解 一、引言 随着电子商务的快速发展&#xff0c;越来越多的商家选择通过1688平台开展业务。为了方便商家获取店铺内所有商品的信息&#xff0c;1688平台提供了相应的API接口。本文将详细介绍如何使用这些接口获取店铺所有商品的信息&#xff0c;以…

GVRP协议与动态、静态vlan

一、GVRP协议使用场景 1、当实际组网复杂到网络管理员无法短时间内了解网络的拓扑结构&#xff0c;或者是整个网络的VLAN太多时&#xff0c;工作量会非常大&#xff0c;而且非常容易配置错误。在这种情况下&#xff0c;用户可以通过GVRP的VLAN自动注册功能完成VLAN的配置。 2、…

【大模型完全入门手册】——大模型入门理论(大语言模型公开数据集)

博主作为一名大模型开发算法工程师,很希望能够将所学到的以及实践中感悟到的内容梳理成为书籍。作为先导,以专栏的形式先整理内容,后续进行不断更新完善。希望能够构建起从理论到实践的全流程体系。 助力更多的人了解大模型,接触大模型,一起感受AI的魅力! 在当今机器学习…

【快捷部署】020_Jenkins(2.60.3)

&#x1f4e3;【快捷部署系列】020期信息 编号选型版本操作系统部署形式部署模式复检时间020Jenkins2.60.3Ubuntu 20.04Docker单机2024-04-17 一、快捷部署 #!/bin/bash ################################################################################# # 作者&#xff1…

使用C++解决数据结构问题的实例

随着计算机科学的不断发展&#xff0c;数据结构已经成为一个重要的领域。在计算机编程中&#xff0c;数据结构是非常重要的&#xff0c;因为它是数据存储和管理的方式。一个完美的数据结构能够提高程序的效率和可扩展性。在这篇文章中&#xff0c;我们将探讨如何使用c解决数据结…

BackTrader 中文文档(十二)

原文&#xff1a;www.backtrader.com/ Visual Chart 原文&#xff1a;www.backtrader.com/docu/live/vc/vc/ 与 Visual Chart 的集成支持两者&#xff1a; 实时数据提供 实时交易 Visual Chart是完整的交易解决方案&#xff1a; 在单个平台上集成图表、数据源和经纪功能 更多…

WebGl/Three 粒子系统 人物破碎及还原运动

粒子 首先&#xff0c;加载模型&#xff0c;这是万千粒子的前身&#xff0c;模型对象由很多面构成&#xff0c;这些面又是由各个点构成的&#xff0c;所以可以将模型的几何体对象geometry赋给粒子对象&#xff0c;粒子物体用Points方式渲染 bloader.load("obj/female02/Fe…

PyTorch深度学习入门-2

PyTorch深度学习快速入门教程&#xff08;绝对通俗易懂&#xff01;&#xff09;【小土堆】_哔哩哔哩_bilibili 一、神经网络的基本骨架 --nn.Module Neutral network torch.nn — PyTorch 2.2 documentation * import torch from torch import nnclass xiaofan(nn.Module):…

C语言经典例题(31)

文章目录 1.交换数组2.统计二进制中1的个数3.交换两个变量(不创建临时变量)4.打印菱形5.字符串左旋 1.交换数组 将数组A中的内容和数组B中的内容进行交换。(数组大小一样) #include <stdio.h>void swap(int arr1[],int arr2[], int sz) {int tmp 0;for (int i 0;i &l…