映射map

Hello,大家好,我是@菜就多练,输不起就别玩,今天我们来讲映射。

由于近期有事,所以停更了一段时间,请大家谅解。

在 C++ 标准模板库(STL)中,map 是一种关联容器,它存储键值对(key-value pairs),并根据键进行排序(不是按新增顺序)。map 允许高效的键值查找、插入和删除操作。

···

map<string, int> m1;m1["yes"] = 1;m1["ok"] = 2;for(auto p=m1.begin(); p!=m1.end(); p++) {cout << p->first << " : " << p->second << ";" <<endl;}cout << "第一个键值是:" << m1.begin()->first << endl;cout << "第一个键值对应的映射值是:" << m1.begin()->second << endl;

···

判断某键值是否存在

find() 方法接受一个键作为参数,并返回一个迭代器(或常量迭代器,如果 map 是常量的话)。如果找到了具有给定键的元素,返回的迭代器将指向该元素;如果没有找到,返回的迭代器将等于 map 的 end() 迭代器。

删除元素和清空映射表

  • 可以使用 erase 方法删除一个元素
  • 使用 clear 方法删除全部元素
#include <iostream>
#include <map>
int main() {map<string, int> myMap = {{"Alice", 25}, {"Bob", 30}, {"Charlie", 35}};// 删除键为 "Bob" 的元素myMap.erase("Bob");// 检查是否删除成功if (myMap.find("Bob") == myMap.end()) {cout << "Bob is removed." << endl;}myMap.clear();return 0;
}

接下来,我们来看一道 历年真题

#A. C07.L07.STL之映射.应用1.查字典

小明正在复习全国英语四级考试,他手里有一本词典,现在有很多单词要查。请编写程序帮助他快速找到要查的单词所在的页码。

输入格式

  1. 第 1 行 1 个正整数 N,N<=10,000,表示字典中一共有多少个单词。
  2. 接下来每两行表示一个单词,其中:
    • 第 1 行是一个长度小于或等于 100 的字符串,表示这个单词,全部小写字母,单词不会重复。
    • 第 2 行是 1 个整数,表示这个单词在字典中的页码。
    • 接下来一行是 1 个整数 M ,M <= 10,000,表示要查的单词数。
    • 接下来的M行,每行一个字符串,表示要查的单词,保证在字典中存在

输出格式

M 行,每行一个正整数,表示第 i 个单词在字典中的页码。

样例

输入数据 1

2
scan
10
word
15
2
scan
word

Copy

输出数据 1

10
15

接下来,我们来看他的正确代码。

#include<bits/stdc++.h>
using namespace std;
//unsigned long long ;
map<string,int >dsnv;
int n,m;
int main(){cin>>n;for(int i=1;i<=n;i++){string s;int a;cin>>s>>a;dsnv[s]=a;}cin>>m;for(int i=1;i<=m;i++){string b;cin>>b;cout<<dsnv[b]<<endl;}return 0;
}

是不是一点都看不懂呢

其实,这就是映射。

这是五年级常考类型。

这是最简单的

我们来看一下难亿点的

//菜就多练,输不起,就别玩
//以前是以前,现在是现在
//不要总拿以前当现在
#include<bits/stdc++.h>
using namespace std;
//unsigned long long ;
int n;
map<int,int>dc;
int main(){cin>>n;for(int i=1;i<=n;i++){int a;cin>>a;dc[a]++;}map<int,int>::iterator it;for(it=dc.begin();it!=dc.end();it++){cout<<it->first<<" "<<it->second<<endl;}return 0;
}

 是不是很无语呢

好了,今天的分享就到这里了,我们下期不见不散,拜拜;

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

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

相关文章

Android 12系统源码_窗口管理(八)WindowConfiguration的作用

前言 在Android系统中WindowConfiguration这个类用于管理与窗口相关的设置&#xff0c;该类存储了当前窗口的显示区域、屏幕的旋转方向、窗口模式等参数&#xff0c;应用程序通过该类提供的信息可以更好的适配不同的屏幕布局和窗口环境&#xff0c;以提高用户体验。 一、类定…

水库监测布点的核心要求与策略解析

在水库的安全监测体系中&#xff0c;监测点位的合理布置是确保数据准确性和监测效果的关键。涵盖了常规监测、形变监控、应力分析以及地质灾害预警等多个维度&#xff0c;其中&#xff0c;形变监测尤为关键&#xff0c;直接关乎大坝的安全状态。形变监测通过测斜仪相关的传感器…

Qt开发技巧(四)“tr“使用,时间类使用,Qt容器取值,类对象的删除,QPainter画家类,QString的转换,用好 QVariant类型

继续讲一些Qt技巧操作 1.非必要不用"tr" 如果程序运行场景确定是某一固定语言&#xff0c;就不需要用tr,"tr"之主要针对多语种翻译的&#xff0c;因为tr的本意是包含英文&#xff0c;然后翻译到其他语言比如中文&#xff0c;不要滥用tr&#xff0c;如果没有…

【渗透测试】——DVWA靶场搭建

&#x1f4d6; 前言&#xff1a;DVWA&#xff08;Damn Vulnerable Web Application&#xff09;是一个用于安全漏洞测试的 PHP/MySQL 网络应用&#xff0c;旨在为安全专业人士提供一个合法的环境&#xff0c;以测试他们的技能和工具&#xff0c;同时帮助 Web 开发者更好地理解 …

大棚分割数据集,40765对影像,16.9g数据量,0.8米高分二,纯手工标注(arcgis标注)的大规模农业大棚分割数据集。

数据集名称&#xff1a; &#xff09;“Greenhouse Segmentation Dataset (GSD)” 数据集规模&#xff1a; 包含40,765对用于大棚分割的影像数据&#xff0c;每对影像包括一张原始图像和相应的分割标签图。 数据量&#xff1a; 总数据量约为16.9GB&#xff0c;适合存储在现…

【数据仓库】数据仓库常见的数据模型——维度模型

文章部分图参考自&#xff1a;多维数据模型各种类型&#xff08;星型、雪花、星座、交叉连接&#xff09; - 知乎 (zhihu.com) 文章部分文字canla一篇文章搞懂数据仓库&#xff1a;四种常见数据模型&#xff08;维度模型、范式模型等&#xff09;-腾讯云开发者社区-腾讯云 (ten…

第14章 存储器的保护

第14章 存储器的保护 该章主要介绍了GDT、代码段、数据段、栈段等的访问保护机制。 存储器的保护功能可以禁止程序的非法内存访问。利用存储器的保护功能&#xff0c;也可以实现一些有价值的功能&#xff0c;比如虚拟内存管理。 代码清单14-1 该章节的代码主要实现的功能就…

详解Transformer位置编码Positional Encoding

提到 Transformer&#xff0c;大家就会联想到位置编码、注意力机制、编码器-解码器结构&#xff0c;本系列教程将探索 Transformer 的不同模块在故障诊断等信号分类任务中扮演什么样角色&#xff0c;到底哪些模块起作用&#xff1f; 前言 本期基于凯斯西储大学&#xff08;CWR…

Qt QSerialPort数据发送和接收DataComm

文章目录 Qt QSerialPort数据发送和接收DataComm2.添加 Qt Serial Port 模块3.实例源码 Qt QSerialPort数据发送和接收DataComm Qt 框架的Qt Serial Port 模块提供了访问串口的基本功能&#xff0c;包括串口通信参数配置和数据读写&#xff0c;使用 Qt Serial Port 模块就可以…

C# WinForm 中 DataGridView 实现单元格cell 能进编辑状态但是不能修改单元格的效果

在Windows Forms&#xff08;WinForms&#xff09;开发中&#xff0c;DataGridView 控件是一个功能强大的组件&#xff0c; 用于显示和管理表格数据。无论是展示大量数据&#xff0c;还是实现交互式的数据操作&#xff0c; DataGridView 都能提供多样的功能支持&#xff0c;比如…

C++设计模式(更新中)

文章目录 1、创建型模式1.1 简单工厂&#xff08;Simple Factory&#xff09;&#xff08;1&#xff09;示例&#xff08;2&#xff09;总结 1.2 工厂方法&#xff08;Factory Method&#xff09;&#xff08;1&#xff09;示例&#xff08;2&#xff09;总结 1.3 抽象工厂&…

Sass实现文字两侧横线及Sass常用方案

Sass常用方案及Sass实现文字两侧横线 1.Sass实现文字两侧横线2.用Sass简化媒体查询3.使用继承占位符实现样式复用4.Sass 模块化5.lighten 和 darken 自我记录 1.Sass实现文字两侧横线 mixin 的基本作用&#xff1a; 代码复用&#xff1a;把常用的样式封装在一起&#xff0c;…

SpringCloud-04 OpenFeign服务调用与负载均衡

OpenFeign是一个声明式、模板化的HTTP客户端&#xff0c;它简化了在Java应用程序中调用RESTful API的过程。OpenFeign是Netflix开发的一个开源项目&#xff0c;它构建在Feign的基础上&#xff0c;为开发者提供了更加简单、灵活的方式来实现HTTP请求。OpenFeign的特点包括&#…

地平线秋招2025

【地平线秋招】 中秋卷起来&#xff01;&#xff01;&#xff01; 内推码 kbrfck 内推码 kbrfck 内推码 kbrfck 投递链接&#xff1a;https://wecruit.hotjob.cn/SU62d915040dcad43c775ec12c/mc/position/campus?acotycoCodekbrfck&recruitType1&isLimitShowPostScope…

【Google Chrome Windows 64 version及 WebDriver 版本】

最近升级到最新版本Chrome后发现页面居然显示错乱实在无语, 打算退回原来的版本, 又发现官方只提供最新的版本下载, 为了解决这个问题所有收集了Chrome历史版本的下载地址分享给大家. Google Chrome Windows version 64 位 VersionSize下载地址Date104.0.5112.10282.76 MBhtt…

STL相关简介

string 看到这个词&#xff0c;相信大家一定都很好奇什么是string&#xff0c;它有什么作用呢&#xff1f;今天&#xff0c;就让我们一起来了解一下关于string的简介吧~ 目录 string 1. 什么是STL 2. STL的版本 3. STL的六大组件 4. STL的重要性 5. 如何学习STL 6.STL的…

Unity实战案例全解析 :PVZ 植物脚本分析

植物都继承了Pants脚本&#xff0c;但是我因为没注意听讲&#xff0c;把Pants也挂在植物上了&#xff0c;所以子类的PlantEnableUpdate和PlantDisableUpdate抢不过父类&#xff0c;无法正确触发动画&#xff0c;我还找不到哪里出了问题&#xff0c;所以就使用了携程加while强行…

bpf的了解以及bpftrace的简单练习

最近接触到bpf的概念&#xff0c;简单做一些练习&#xff0c;做以下整理&#xff0c;学习笔记。 0&#xff1a;总结 使用ebpf可以实现的功能打开新世界&#xff0c;可以不改变源码的情况下&#xff0c;实现内存&#xff0c;网络&#xff0c;对应接口等各种期望内容的监控。 …

王者荣耀改重复名(java源码)

王者荣耀改重复名 项目简介 “王者荣耀改重复名”是一个基于 Spring Boot 的应用程序&#xff0c;用于生成王者荣耀游戏中的唯一名称。通过简单的接口和前端页面&#xff0c;用户可以输入旧名称并获得一个新的、不重复的名称。 功能特点 生成新名称&#xff1a;提供一个接口…

C++基础知识7 list

list 1. list的介绍及使用1.1 list的介绍1.2 list的使用1.2.1 list的构造1.2.2 list iterator的使用1.2.3 list capacity1.2.4 list element access1.2.5 list modifiers1.2.6 list的迭代器失效 2.1 模拟实现list 1. list的介绍及使用 1.1 list的介绍 1.2 list的使用 1.2.1 l…