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/8/1 20:19:12 阅读更多 →
防水耳机母座的结构设计与多领域应用方案

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

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

2026/8/1 20:19:12 阅读更多 →
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/8/1 20:19:12 阅读更多 →

最新新闻

天线核心参数全解析:从增益、带宽到极化与匹配,射频工程师实战指南

天线核心参数全解析:从增益、带宽到极化与匹配,射频工程师实战指南

1. 天线项目概述:从“一根导线”到“无线桥梁”天线,这玩意儿在很多人眼里可能就是一根金属棍、一块金属片,或者路由器上那几根可以掰来掰去的“触角”。但如果你真的把它当成一根简单的导体,那就大错特错了。在我十多年的射频工程…

2026/8/3 5:52:50 阅读更多 →
Python爬虫与混合推荐算法构建个性化书籍推荐系统

Python爬虫与混合推荐算法构建个性化书籍推荐系统

1. 项目概述:个性化书籍推荐系统的核心价值 这个基于Python爬虫的书籍推荐系统,本质上是通过数据采集和算法分析来解决信息过载问题的智能工具。我在实际开发中发现,当用户面对海量图书时,传统分类检索的效率极其低下——根据我的…

2026/8/3 5:52:50 阅读更多 →
时序数据分析:差分处理与ARMA模型实战

时序数据分析:差分处理与ARMA模型实战

1. 时序分析基础:为什么需要差分处理时序数据(Time Series Data)是指按时间顺序排列的观测值集合,常见于金融、气象、工业等领域。这类数据往往具有以下特征:趋势性(Trend):数据长期…

2026/8/3 5:52:50 阅读更多 →
C++内存管理:从基础到智能指针与内存池优化

C++内存管理:从基础到智能指针与内存池优化

1. C内存管理基础概念C作为一门系统级编程语言,其内存管理机制一直是开发者必须掌握的核心知识。与Java、Python等带有垃圾回收机制的语言不同,C要求开发者手动管理内存,这既带来了性能优势,也埋下了内存泄漏、野指针等隐患的种子…

2026/8/3 5:51:50 阅读更多 →
国产化数据中台全栈适配与性能优化实践

国产化数据中台全栈适配与性能优化实践

1. 项目背景与核心价值AllData数据中台在信创环境下的国产化适配,标志着企业级数据基础设施自主可控的重要突破。这个项目最让我兴奋的点在于:它首次实现了从底层硬件(海光CPU)、操作系统(麒麟)、到数据库&…

2026/8/3 5:51:50 阅读更多 →
Word 2019集成MathType 7.4全攻略:解决加载项消失与兼容性问题

Word 2019集成MathType 7.4全攻略:解决加载项消失与兼容性问题

1. 项目概述:当专业公式编辑器遇上现代办公软件如果你是一名理工科的学生、科研工作者,或者经常需要撰写包含复杂数学公式、化学方程式、物理符号的技术文档,那么你一定对在Word里敲公式的“痛苦”深有体会。Word自带的公式编辑器虽然一直在进…

2026/8/3 5:51:50 阅读更多 →

日新闻

3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南

3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南

3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。…

2026/8/3 0:00:47 阅读更多 →
[具身智能-181]:PC+服务器+具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构

[具身智能-181]:PC+服务器+具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构

PC服务器具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构一、前言:具身智能需要“混合算力闭环系统”传统人工智能依赖云端静态数据集训练,不具备物理交互能力,无法适应真实世界的不确定性。具身智能(Embodied…

2026/8/3 0:00:47 阅读更多 →
[具身智能-181]:大分布式通信模型对比:看懂为什么 DDS 是 ROS2 底层通信最优解

[具身智能-181]:大分布式通信模型对比:看懂为什么 DDS 是 ROS2 底层通信最优解

前言构建机器人、具身智能这类分布式实时系统,通信底座直接决定整套系统的实时性、容错性、组网能力。分布式领域长期存在 4 类经典通信架构:点对点模式、Broker 中间代理模式、广播模式、以数据为中心(DDS)模式。很多开发者疑惑&…

2026/8/3 0:00:47 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/3 4:58:13 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/3 1:53:31 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/3 4:36:35 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/2 6:34:16 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/3 5:19:38 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/2 0:23:22 阅读更多 →