小学生学C++编程语法知识(STL容器(9、智能电话本——认识Map(映射)))
STL课程第九课《智能电话本——认识Map映射》本课目标理解什么是 Map映射。理解键Key和值Value的概念。掌握[]、insert()、find()、count()、erase()、size()、empty()的使用。能利用 Map 建立对应关系。能利用 Map 完成简单统计。第一幕 神奇电话本今天。程序王国来了一个新的管理员。他说我有一本神奇电话本。里面记录着小明 → 13888888888 小红 → 13999999999 小刚 → 13666666666如果我知道小明能不能立刻找到电话号码今天我们认识的新朋友。叫Map中文名字映射或者键值对容器它最大的本领就是一个东西对应另一个东西。第二幕 什么叫映射画图姓名 小明 ─────────► 13888888888 小红 ─────────► 13999999999 小刚 ─────────► 13666666666左边。叫Key键右边。叫Value值一句口诀通过Key找到Value。第三幕 Map还能保存什么继续画图。不仅姓名。还能国家。China ↓ 广州 USA ↓ 纽约还能动物。Cat ↓ 猫 Dog ↓ 狗还能学号。1001 ↓ 张三Map就是建立对应关系。第四幕 请出Map头文件#includeiostream #includemap using namespace std;创建mapstring,string phone;解释前面的string表示姓名。后面的string表示电话号码。提醒Map要写两个类型。左边。右边。可以分别设定。第五幕 添加电话最简单的方法phone[小明]13888888888; phone[小红]13999999999; phone[小刚]13666666666;画图小明 ↓ 13888888888第六幕 查电话请问小明电话多少程序coutphone[小明];输出13888888888是不是很方便第七幕 修改电话如果小明换号码了。程序phone[小明]18888888888;再输出coutphone[小明];结果18888888888总结再次赋值就是修改。第八幕 Map还能统计次数今天拿了苹果 香蕉 苹果 苹果 香蕉请问苹果拿了几次以前。需要循环统计。今天使用Map。一句话。mapstring,int cnt;每来一个水果。cnt[name];结束以后。coutcnt[苹果];输出3同学们惊呼这么简单第九幕 为什么能解释。开始Map里面没有苹果。程序自动设置苹果 ↓ 0然后拿了苹果就变成1以后再来。继续2 3 4Map非常聪明。不存在。就自动创建。初始值是0。因为设置的是 int 型第十幕 遍历MapMap里面不是一个数字。而是很多Key。Value。详细介绍for(auto x:phone) { coutx.first ; coutx.secondendl; }解释first就是左边。Key。second就是右边。Value。例如输出小刚 13666666666 小明 18888888888 小红 13999999999还有特别棒的是Map 会按照 Key 自动排序。第十一幕 find()如果问有没有小明程序if(phone.find(小明)!phone.end()) { cout找到; }map和Set一样。找不到。返回end()第十二幕 erase()删除phone.erase(小红);以后。电话本。就没有小红了。第十三幕 count()请问有没有小刚coutphone.count(小刚);输出1如果没有。输出0第十四幕 演示程序#includeiostream #includemap using namespace std; int main() { mapstring,string phone; phone[小明]13888888888; phone[小红]13999999999; phone[小刚]13666666666; cout小明电话; coutphone[小明]endl; coutendl; for(auto x:phone) { coutx.first ; coutx.secondendl; } return 0; }第十五幕 课堂实践一——统计单词出现次数输入apple banana apple orange apple banana要求输出apple 3 banana 2 orange 1参考程序#includeiostream #includemap using namespace std; int main() { mapstring,int cnt; int n; cinn; while(n--) { string s; cins; cnt[s]; } for(auto x:cnt) { coutx.first x.secondendl; } return 0; }这是Map最经典的用途。第十六幕 课堂实践二——学生成绩查询输入Tom 98 Lucy 100 Jack 95然后输入Lucy输出100是不是马上会想到刚学的电话本第十七幕 Set 和 Map 有什么区别画图。Set苹果 香蕉 西瓜只有一个东西。Map苹果 ↓ 5元 香蕉 ↓ 3元 西瓜 ↓ 12元总结Set只有Key。Map有Key和Value。本课总结今天我们认识了Map映射。它最大的特点就是一个Key对应一个Value。我们掌握了七个最常用的成员函数成员函数作用生活中的理解m[key]添加、修改、查询根据名字查电话insert()插入一组键值对新增联系人find()查找Key找联系人count()判断Key是否存在是否有这个联系人erase()删除Key删除联系人size()元素个数电话本里有多少联系人empty()是否为空电话本是不是空的 一定要讲的知识——[]与find()的区别这是很多同学最容易踩坑的地方。现场演示mapstring,int cnt; coutcnt[apple]endl;输出0再问Map里面原来有apple吗没有但是执行这一句后cnt[apple]Map 会自动创建apple ↓ 0所以m[key]不仅可以查询。还可能自动新增元素。而find()只是查找。不会增加任何东西。一句话口诀[]会顺手建档案find()只负责找档案。 竞赛思维以后。很多信奥赛题都会使用mapint,int cnt;或者mapstring,int cnt;看到cnt[x];就应该立刻想到这是在统计出现次数这是Map 在 GESP、CSP-J、NOIP 中出现频率最高的用法之一。

相关新闻

鼎捷PLM5.0高安全高效能高扩展高可用

鼎捷PLM5.0高安全高效能高扩展高可用

在国家高质量发展战略的指导下,消费升级对制造业提出了更高的个性化的产品和服务要求,企业必须通过数字化转型建立大规模定制、敏捷交付和服务能力来满足消费者的需求。技术创新是高质量发展的核心,企业数字化转型过程中,研发数字…

2026/7/23 21:25:32阅读更多 →
康谋业务全景速览|自动驾驶仿真、数据闭环、机器人与院校实训一站式方案

康谋业务全景速览|自动驾驶仿真、数据闭环、机器人与院校实训一站式方案

康谋(Keymotek)是由虹科(国家级专精特新小巨人、高新技术企业)孵化的,专注于智能驾驶和具身智能领域的业务主体。凭借团队数十年汽车软硬件开发经验,目前主要为智驾及具身智能研发测试的整个流程提供数据闭…

2026/7/23 21:25:32阅读更多 →
多模态大语言模型动态交互与效率优化研究

多模态大语言模型动态交互与效率优化研究

1. 多模态大语言模型(MLLMs)的现状与挑战在2023-2024年的AI领域爆发式发展中,多模态大语言模型(Multimodal Large Language Models, MLLMs)已成为最受关注的研究方向之一。这类模型通过融合视觉、语言等多种模态信息&a…

2026/7/23 21:23:31阅读更多 →
DeepSeek专家模式突破对话上限技巧,无缝衔接新对话!

DeepSeek专家模式突破对话上限技巧,无缝衔接新对话!

各位有没有在使用DeepSeek中,尤其是专家模式深度思考,出现“对话已达上限”的提示? 这篇文章我就分享如何解决这个问题。这也是我最开始十分头疼又无法逾越的鸿沟! 当你的DeepSeek在专家模式深度思考的情况下出现“对话已达上限”…

2026/7/23 22:43:42阅读更多 →
Mailpit介绍(本地开发和自动化测试邮件沙箱)本地邮件服务、本地SMTP服务器、1025端口、8025端口、Chaos功能、SMTP Relay(SMTP 中继)、MailHog

Mailpit介绍(本地开发和自动化测试邮件沙箱)本地邮件服务、本地SMTP服务器、1025端口、8025端口、Chaos功能、SMTP Relay(SMTP 中继)、MailHog

● Mailpit 不需要注册任何账号——它和 Resend 是完全不同的两类东西:Mailpit 是一个"假邮箱服务器",只在你本机跑。它是一个开源的 Docker 容器(我已经加到 docker-compose.yml,用 profile门控,只在本地开…

2026/7/23 22:43:42阅读更多 →
Beta 是什么意思

Beta 是什么意思

简单一句话:Beta 公开测试版。产品功能基本做完,但还没正式稳定发布,放出来让大家试用、找 BUG。版本阶段完整顺序(行业通用)Alpha(α)内测版 内部员工自己测,功能残缺、bug 巨多&a…

2026/7/23 22:43:42阅读更多 →
HarmonyOS7 性能调优:Profiler 工具定位卡顿,3 个案例手把手教你

HarmonyOS7 性能调优:Profiler 工具定位卡顿,3 个案例手把手教你

文章目录前言性能问题有哪些Profiler 工具介绍案例 1:列表滚动卡顿案例 2:页面切换白屏案例 3:内存泄漏性能优化清单写在最后前言 HarmonyOS7 的 DevEco Studio 内置了 Profiler 性能分析工具,能帮你抓 CPU、内存、渲染等维度的数…

2026/7/23 22:43:42阅读更多 →
测试文章 001122 - 请忽略

测试文章 001122 - 请忽略

这是一篇测试文章,用于验证账号状态,将立即删除。

2026/7/23 22:43:42阅读更多 →
AI辅助数学建模全流程实战:从读题到代码生成

AI辅助数学建模全流程实战:从读题到代码生成

1. 项目概述:AI辅助数学建模全流程实战参加数学建模竞赛却不知从何下手?这是很多大学生和研究生初次参赛时的共同困扰。去年带队参加泰迪杯时,我发现队员们在读题、选题、建模和编程四个关键环节普遍存在卡点。传统的人工解题模式需要大量专业…

2026/7/23 22:41:42阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/23 0:56:31阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/23 0:56:31阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 0:56:31阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:00:28阅读更多 →
从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…

2026/7/23 0:00:28阅读更多 →
油泥处理设备哪里能买到

油泥处理设备哪里能买到

油泥处理设备哪里有?这是许多从事油田、炼化、清罐业务的从业者最关心的问题。根据河南三丰环保设备有限公司的行业经验,选购油泥处理设备的核心在于设备能否适配当地环保法规与原料特性,而非单纯看价格。该公司总经理王钦田先生指出&#xf…

2026/7/23 0:00:28阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/22 22:56:18阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/23 18:58:18阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/23 18:58:18阅读更多 →