STL之map(映射/地图)
须知在尖括号中定义你容器里的元素类型 mapstring,int people使用前提#includemap1.特征map元素存储在键值对中Map 映射通常实现为二叉搜索树2.映射中的元素包括可通过键而不是索引访问并且每个键都是唯一的。按其键自动按升序排序。mapkeytype, valuetypemapName也就是说上面的string是keyint是value。3.声明时赋值方式eg:mapstring, int people { {John, 32}, {Adele, 45}, {Bo, 29} };4.访问方式无法通过索引访问需要通过key访问对应的value值也可以通过.at()来访问eg:#include iostream #include map using namespace std; int main() { // Create a map that will store the name and age of different people mapstring, int people { {John, 32}, {Adele, 45}, {Bo, 29} }; // Get the value associated with the key John cout John is: people[John] \n; // Get the value associated with the key Adele cout Adele is: people.at(Adele) \n; return 0; }运行结果更改值可以people[John] value,也可以people.at(John) value添加值eg:people[key] value也可以使用.insert({key,value})map中不能出现key相同的元素但是value是可以相等的5.删除元素用.erase()只用删除Key值全删可以用.cleareg:.erase(John)6.查看地图大小.size()7.查询是否为空.empty()8..count()还可以使用该函数检查是否存在特定元素。.count(key)如果元素存在则返回 true如果元素不存在则返回 falseeg:#include iostream #include map using namespace std; int main() { mapstring, int people { {John, 32}, {Adele, 45}, {Bo, 29} }; cout people.count(John)endl; cout people.count(chen); return 0; }运行结果9.遍历mapmap不同于前几个(vector,stack,set,queue,list)只储存一种类型的元素map存储一组元素可能相同也可能不同所以遍历方式也不同于其他。我们需要用auto关键字这个关键字可以自动识别元素的类型在循环中每次访问需要用.first和.second访问每个元素的key和value。、eg:#include iostream #include map using namespace std; int main() { mapstring, int people { {John, 32}, {Adele, 45}, {Bo, 29} }; for (auto pair : people) { cout pair.first is: pair.second \n; } return 0; }输出结果通过输出结果我们可以发现map自动把key给排序了默认是升序。若想在遍历输出时是按照key的降序输出可以这样定义mapstring, int,greaterstring people { {John, 32}, {Adele, 45}, {Bo, 29} };10.swap()函数将 map 的内容与 map x 的内容交换#include iostream #include map using namespace std; int main(void) { mapchar, int m1 { {a, 1}, {b, 2}, {c, 3}, {d, 4}, {e, 5}, }; mapchar, int m2; m2.swap(m1); cout Map2 contains following elements endl; for (auto it m2.begin(); it ! m2.end(); it) cout it-first it-second endl; cout Map1 contains following elements endl; for (auto it m1.begin(); it ! m1.end(); it) cout it-first it-second endl; coutm1.size(); return 0; }运行结果unordered_map无序映射是像字典一样的数据结构。 它是键值对的序列其中只有单个值与每个唯一键相关联。 它通常被称为关联数组。它可以根据它们的键快速检索单个元素。 它还实现了直接访问运算符下标运算符[]它允许使用其键值作为参数直接访问映射值。他不会按照键的值来进行排序而是根据其哈希值组织成桶以允许直接通过键值快速访问各个元素。在通过键访问单个元素时无序映射比映射执行得更好。 但是对于范围迭代它们的性能相当低。大家根据需求来选取map还是unordered_map使用注意最新学习时了解到map并不是严格按照下标来取值的比如mapint,string mymap{{1,wuhu},{2,wuhan},{3,ningbo}};可能大多数人也认为取mymap[0]的时候指的时{1“wuhu}这份值但其实是意思是找key为0的value值当然目前mymap里没有这个key值所以会打印空并当再打印一次整个mymap时会发现0已经被加入mymap里了作为新key对应的value是空可以进行赋值。这里使用时需要注意。

相关新闻

Typecho 模板开发中$this 对象全解析与实战应用

Typecho 模板开发中$this 对象全解析与实战应用

在开发自定义主题或调试模板文件时,最让人头疼的往往不是复杂的逻辑算法,而是那些看似简单却频繁报错的变量调用问题。很多开发者在从静态 HTML 转向动态模板引擎时,常常困惑于数据是如何从后端传递到前端的,为什么有时候能取到值…

2026/9/24 14:44:31 阅读更多 →
防水耳机母座的结构设计与多领域应用方案

防水耳机母座的结构设计与多领域应用方案

在户外电子设备、可穿戴产品、工业通讯终端的硬件设计中,音频接口的防护等级往往决定了整机的环境适应性。普通 3.5mm 耳机母座在潮湿、多尘、油污环境下极易出现接触不良、氧化锈蚀甚至短路失效,成为产品可靠性的短板。作为专注于防水连接器研发生产的源…

2026/9/24 20:05:40 阅读更多 →
KMS激活工具深度解析:从技术原理到实战应用全指南

KMS激活工具深度解析:从技术原理到实战应用全指南

KMS激活工具深度解析:从技术原理到实战应用全指南 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO KMS_VL_ALL_AIO是一款智能激活脚本工具,专为Windows和Office产品提供高…

2026/9/24 20:05:36 阅读更多 →

最新新闻

华为Atlas 300V 24G AI推理加速卡解析与YOLO部署实践

华为Atlas 300V 24G AI推理加速卡解析与YOLO部署实践

“Atlas 300V 24G 是运算加速卡吗?”这个问题,我在后台和技术群里看到过不下五六次。能理解,名字里带个V、宣传材料里又老提“视频分析”,很多人第一反应是“这难道是块视频采集卡、转码卡”,压根没往“跑深度学习模型…

2026/9/25 20:43:48 阅读更多 →
ArcMap拓扑原理与实战:空间关系校验的核心逻辑

ArcMap拓扑原理与实战:空间关系校验的核心逻辑

1. 这不是“画图”,是空间关系的体检与矫正——ArcMap拓扑到底在干啥?很多人第一次点开ArcMap里的“拓扑”菜单时,心里想的是:“不就是让线连上点、面不重叠吗?我手动修修不就完了?”——这恰恰是踩进坑的第…

2026/9/25 20:43:48 阅读更多 →
Atlas 300V部署YOLO全流程:从ONNX到OM的实践指南

Atlas 300V部署YOLO全流程:从ONNX到OM的实践指南

最近如果你在搜“Atlas”这个词,大概率会跟我一样,先看到一堆同名项目——Hadoop的元数据管理工具、MongoDB的云数据库、某机器人公司的双足机器人,甚至还有些乱七八糟跟AI没半点关系的系统。但如果你搜的是“Atlas部署YOLO”“Atlas 300V 24…

2026/9/25 20:43:48 阅读更多 →
Atlas 300V 24G部署YOLO全流程:从模型转换到性能调优

Atlas 300V 24G部署YOLO全流程:从模型转换到性能调优

最近被问得最多的一个问题就是:“Atlas 300V 24G 到底是不是运算加速卡,能不能拿来跑 YOLO?”说实话,每次听到这种问题我都知道提问者大概处在哪个阶段——十有八九是把 Atlas 当成“国产显卡”买回来了,结果插上板子、…

2026/9/25 20:43:48 阅读更多 →
旅游车队AI落地指南:老板与车调员的每日降本增效实战

旅游车队AI落地指南:老板与车调员的每日降本增效实战

1. 为什么旅游车队老板和车调员最该先用AI?——不是炫技,是把每天重复的“救火”变成“预判”旅游车队这行,我干了十二年,从开大巴到管二十台车,再到帮三家旅行社做车辆调度系统顾问。见过太多老板凌晨三点被导游电话叫…

2026/9/25 20:43:48 阅读更多 →
Atlas 300V 24G部署YOLOv8实战:从CANN工具链到ACL推理全流程解析

Atlas 300V 24G部署YOLOv8实战:从CANN工具链到ACL推理全流程解析

最近后台好几个做安防和工业检测的朋友都在问同一件事:Atlas 300V 24G到底算不算运算加速卡?能不能拿来部署YOLO?先把结论说清楚:它当然是运算加速卡,而且就是专门干AI推理这活的。但它不是NVIDIA那种GPU,驱…

2026/9/25 20:42:48 阅读更多 →

日新闻

AI元人文:从工具使用到思维重构的深度探索

AI元人文:从工具使用到思维重构的深度探索

最近半年我一直在琢磨一件事:AI元人文到底是什么?说白了,就是“用元视角重新审视人与AI的关系”,也在“探索AI如何反向逼着我们发现自己的思考边界”。标题里的“元探索”,在我看就是一层套一层的追问——当你用AI解决…

2026/9/25 0:00:41 阅读更多 →
Python+CNN车牌识别实战:从数据预处理到模型训练与部署

Python+CNN车牌识别实战:从数据预处理到模型训练与部署

简介:基于Python与卷积神经网络的车牌识别项目,面向计算机视觉初学者及智能交通开发者,目标是帮助用户掌握从数据预处理、模型构建到实际部署的完整流程。压缩包共25个文件,包含jpg/png图像样本、py训练脚本、md说明文档、dat数据…

2026/9/25 0:00:41 阅读更多 →
Vim基础操作全攻略:保存退出、模式切换与高频命令实战

Vim基础操作全攻略:保存退出、模式切换与高频命令实战

1. 项目概述1.1 核心需求解析今天聊聊Vim。写这个题目的原因是:几乎每个后端开发者、运维人员、数据工程师某天都会遇到一个场景——深夜加班,服务器登录界面只有黑底白字,编辑器只有vi/vim,你必须在五分钟内完成一次配置修改并保…

2026/9/25 0:00:41 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/25 19:27:14 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/25 11:15:26 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/25 20:29:09 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/25 20:29:43 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/25 20:29:31 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/25 19:27:26 阅读更多 →