蓝桥杯-常用STL(三)

常用STL

  • 🎈1.映射
  • 🎈2.map的基础使用
    • 🔭2.1引入库
    • 🔭2.2构造一个映射
    • 🔭2.3插入一对映射
    • 🔭2.4判断关键字是否存在
    • 🔭2.5遍历映射
    • 🔭2.6清空

🎈1.映射

🔎映射是指两个集合之间的元素的相互对应关系。通俗地说,就是一个元素对应另外一个元素。比如有一个姓名的集合{“Tom”,"Jone","Mary"},班级集合{1,2}。姓名与班级之间可以有如下的映射关系:class("Tom")=1,class("Jone")=2,class("Mary")=1.我们称其中的姓名集合为关键字集合,班级集合为值集合。在C++中,我们常用的映射是map.

🎈2.map的基础使用

🔭2.1引入库

C++map的实现是在一个<map>头文件中,在代码开头引入这个头文件,并且同样加上一句using namespace std;

🔭2.2构造一个映射

C++中,我们构造一个map的语句为:map<T1,T2> m.这样我们定义一个名为m的从T1类型到T2类型的映射。初识的时候m是空映射。比如map<string,int> m构建了一个字符串到整数的映射,这样我们可以把一个字符串和一个整数关联起来。

🔭2.3插入一对映射

C++中,用insert()函数向集合中插入一个新的映射,参数是一个pair.pair是一个标准库类型,定义在头文件utility中。可以看成是有两个成员变量firstsecond的结构体,并且重载了<运算符(先比较first大小,如果一样再比较second).当我们创建一个pair时,必须提供两个类型。我们可以像这样定义一个保存stringintpair.

pair<string,int> p;

make_pair(v1,v2)函数返回由v1v2初始化的pair,类型可以由v1v2的类型推断出来。我们向映射对的时候就是通过插入pair来实现的。如果插入的key之前就已经存在了,将不会用插入的新的volue替代原来的value,也就是这次插入是无效的。

#include <map>
#include <string>
#include <utility>
using naespace std;
int main()
{map<string,int> dict;dict.insert(make_pair("Tom",1));dict.insert(make_pair("Jone",2));dict.insert(make_pair("Mary",1));return 0;
}

🔭2.4判断关键字是否存在

C++中如果你想知道某个元素是否在集合中出现,你可以直接用count()函数。如果集合中存在我们要查找的元素,返回1,否则返回0

#include <map>
#include <string>
#include <iostream>
using namespace std;
int main()
{map<string, int> dict;//{}dict["Tom"]=1;dict["Jone"]=2;dict["Mary"]=1;if (dict.count("Mary"))cout << "Mary is in class" << dict["Mary"] << endl;return 0;
}

在这里插入图片描述

🔭2.5遍历映射

map的迭代器的定义和set差不多,map<T1,T2>::iterator it就定义了一个迭代器,其中T1,T2分别是keyvalue的类型。C++通过迭代器可以访问集合中的每个元素。这里迭代器指向的元素是一个pair,有firstsecond两个成员变量,分别代表一个映射的keyvalue.我们用->运算符来获取值,it->first(*it).first的效果是一样的,就是获取迭代器it指向的pairfirst成员的值。

#include <map>
#include <string>
#include <iostream>
using namespace std;
int main()
{map<string, int> dict;//{}dict["Tom"]=1;dict["Jone"]=2;dict["Mary"]=1;for(map<string,int>::iterator it = dict.begin();it!=dict.end();it++){cout<<it->first<<"->"<<it->second<<endl;}return 0;
}

在这里插入图片描述

🔭2.6清空

C++中调用clear()函数就可以清空map,同时会清空map占用的内存。

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

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

相关文章

Pycharm环境中,python为变量赋值的时候,如何自动添加空格?

在python中&#xff0c;为变量赋值的时候&#xff0c;如果没有加入空格&#xff0c;代码底部会有灰色波浪线&#xff0c;说明不符合Python规范。 可以在菜单栏选择code&#xff0c;reformat code。重新格式化代码&#xff0c;所有代码会自动格式化。 快捷方式为&#xff1a;ct…

数据库JSON类型到映射JAVA上

Mysql存放JSON数据如何映射JAVA实体类 概述&#xff1a;最近写在写SKU模块中&#xff0c;需要表中字段存放JSON类型数据&#xff0c;mybatis-plus在查询的时候如何跟JSON类型所匹配呢&#xff1f;再次记录一下。 直接上代码&#xff0c;后面有解释到底如何映射上的。 Mysql表…

UV-K5

该方法是安装到python的安装目录了&#xff0c;建立项目的时候勾选 Inherit globel site-packages (使用全局的站点包) &#xff0c;就能调用安装路径的包文件环境。 cmd进入Dos窗口安装 pyserial 模块&#xff1a; pip install pyserial

阿里巴巴中国站获得公司档案信息 API 返回值说明

一、应用场景 阿里巴巴中国站获得公司档案信息 API接口的应用场景可以包括但不限于以下几种情况&#xff1a; 1、企业信息查询&#xff1a;API接口可用于查询企业的基本档案信息&#xff0c;如企业名称、注册地址、法定代表人、经营范围等。这些信息对于了解企业背景、信用状…

手机和windows的便签怎么共享账号使用

在忙碌的生活中&#xff0c;我经常需要在手机和电脑之间同步记事信息。可是&#xff0c;每次当我在手机上记下一些重要事项后&#xff0c;想要在电脑上查看或继续编辑时&#xff0c;总是遇到各种麻烦。因为手机和电脑上的便签软件各不相同&#xff0c;无法实现账号共享和内容同…

从0到1实现五子棋游戏!!

Hello&#xff0c;好久不见宝子们&#xff0c;今天来给大家更一个五子棋的程序~ 我们今天要讲的内容如下&#xff1a; 文章目录 1.五子棋游戏介绍1.1 游戏玩法介绍&#xff1a; 2.准备工作2.1 具体操作流程 3.游戏程序主函数4.初始化棋盘4.1.定义宏变量4.2 初始化棋盘 5.打印…

2024年2月最新微信域名检测拦截接口源码

这段PHP代码用于检测指定域名列表中的域名是否被封。代码首先定义了一个包含待检测域名的数组 $domainList&#xff0c;然后遍历该数组&#xff0c;对每个域名发送HTTP请求并检查响应内容以判断域名是否被封。 具体步骤如下&#xff1a; 1. 定义待检测的域名列表。 2. 遍历域名…

一、深度学习介绍

目录 1、深度学习与机器学习的区别 1.1 特征提取方面 1.2 数据量和计算性能要求 1.3 算法代表 2、深度学习应用场景 1、深度学习与机器学习的区别 1.1 特征提取方面 1.2 数据量和计算性能要求 1.3 算法代表 2、深度学习应用场景

优化全球应用交付,详解GLSB是什么?

伴随着互联网的快速发展&#xff0c;网站的流量请求甚至能达到上千亿&#xff0c;越来越多的用户不满足于在单一数据中心提供服务&#xff0c;开始考虑容灾、用户就近访问以及全球应用交付等问题。在这样的需求下&#xff0c;全局服务器负载均衡技术&#xff08;GSLB&#xff0…

Python电能质量扰动信号分类(六)基于扰动信号特征提取的超强机器学习识别模型

目录 往期精彩内容&#xff1a; 前言 1 数据集和特征提取 1.1 数据集导入 1.2 扰动信号特征提取 2超强模型XGBoost——原理介绍 2.1 原理介绍 2.2 特征数据集制作 3 模型评估和对比 3.1 随机森林分类模型 3.2 支持向量机SVM分类模型 3.3 XGBoost分类模型 代码、数据…

智慧应急与物联网相结合:物联网技术如何提升智慧应急响应能力

目录 一、引言 二、智慧应急与物联网技术的结合 三、物联网技术提升智慧应急响应能力的途径 四、物联网技术在智慧应急中的应用案例 五、物联网技术在智慧应急中面临的挑战与解决方案 挑战一&#xff1a;技术标准与规范不统一 解决方案&#xff1a; 挑战二&#xff1a;…

工业锅炉物联网:HiWoo Cloud为工业能源转型注入新动力

随着全球工业化的快速发展&#xff0c;工业锅炉作为工业生产的“心脏”&#xff0c;其能源效率和运行安全性越来越受到关注。然而&#xff0c;传统的工业锅炉管理往往依赖于人工监控和定期维护&#xff0c;这种方式不仅效率低下&#xff0c;而且难以确保设备的持续高效运行。在…

Matlab如何批量读取txt数据?科研效率UpUp第1期

最近帮几个亲朋好友整理博士毕业论文。 期间&#xff0c;我观察了他们的行为模式&#xff0c;发现其将大量的时间&#xff0c;不同程度地浪费在一些机械、重复性劳动上&#xff0c;导致效率低下。 博士尚且如此&#xff0c;想必还有很多人也深受其扰。 作为一个专业摸鱼人&a…

分享:大数据信用报告查询的价格一般要多少钱?

现在很多人都开始了解自己的大数据信用了&#xff0c;纷纷去查大数据信用报告&#xff0c;由于大数据信用与人行征信有本质的区别&#xff0c;查询方式和价格都不是固定的&#xff0c;本文就为大家详细讲讲大数据信用报告查询的价格一般要多少钱&#xff0c;希望对你有帮助。 大…

vue3 实现一个简单的输入框

需求背景 需要一个输入框&#xff0c;可以输入文字&#xff0c;添加表情&#xff0c;一开始用了富文本编辑器&#xff0c;有点大材小用&#xff0c;所以自己封装一个输入框组件。支持输入文字&#xff0c;选择表情/插入表情&#xff0c;支持组合键换行&#xff0c;使用enter 进…

DPU:未来计算的三大支柱之一

随着计算领域的不断发展&#xff0c;数据处理单元&#xff08;DPU&#xff09;的出现正在重塑数据中心和计算架构的未来。在本文中&#xff0c;我们深入探讨了DPU在该领域的重要性和作用&#xff0c;并将其与传统的中央处理器&#xff08;CPU&#xff09;和图形处理单元&#x…

2024年小程序云开发CMS内容管理无法使用,无法同步内容模型到云开发数据库的解决方案,回退老版本CMS内容管理的最新方法

一&#xff0c;问题描述 最近越来越多的同学找石头哥&#xff0c;说cms用不了&#xff0c;其实是小程序官方最近又搞大动作了&#xff0c;偷偷的升级的云开发cms&#xff08;内容管理&#xff09;以下都称cms&#xff0c;不升级不要紧&#xff0c;这一升级&#xff0c;就导致我…

亚马逊云科技实时 AI 编程助手 Amazon CodeWhisperer,开发快人一步

​ 亚马逊云科技&#xff1a;https://mic.anruicloud.com/url/1024 ​ Amazon CodeWhisperer 是一款 AI 编码配套应用程序&#xff0c;可在 IDE 中生成 整行代码和完整的函数代码建议&#xff0c;以帮助您更快地完成更多工作。在本系列 文章中&#xff0c;我们将为您详细介绍 A…

学习阶段单片机买esp32还是stm32?

学习阶段单片机买esp32还是stm32? 在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「stm32的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xf…

5G时代对于工业化场景应用有什么改善

5G 不仅仅是 4G 的技术升级&#xff0c;而是将平板电脑和智能手机的技术升级。除了更好的高清视频流和其他高带宽应用&#xff0c;消费者不会注意到很多性能差异。然而&#xff0c;在工业领域&#xff0c;5G 代表着巨大的飞跃。 在工厂和厂房内&#xff0c; 设备的Wi-Fi 网络经…