尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
C++学习笔记---容器---map映射
一、map 核心基础特性必考成对存储以key键 value值成对存储一一映射关系Key唯一不重复键不能重复自动有序默认根据key从小到大升序排序与value无关底层结构平衡二叉搜索树红黑树和 set 完全一致支持下标访问区别于 setmap 可以直接通过mp[key]读写数据二、头文件与标准定义语法1. 必备头文件#include map、#include iostream字符串操作需额外#include string2. 定义格式map键类型, 值类型 容器名; map键类型, 值类型 容器名{{key1,value1}.{key2,value2}}; //不对key排序 unordered_map键类型, 值类型 容器名;3. 常用定义示例mapint, int m1; // 整型键 → 整型值 mapchar, int m2; // 字符键 → 整型值统计字符次数专用 mapstring, int m3; // 字符串键 → 整型值统计单词次数 mapint, string m4; // 整型键 → 字符串值编号对应名称三、map 插入与修改数据两种写法1. 下标法初学首选、最常用既能插入新数据也能覆盖修改旧数据语法简单直观。mapint, string mp; mp[1] C语言; mp[2] C; mp[1] 新版C语言; // key重复直接覆盖旧value2. insert 插入法特点key重复时不覆盖、不生效保留原值。mp.insert({3, Python});核心规则总结key不存在两种方式均为新增键值对key已存在下标法覆盖值insert法无效不修改四、map 两种遍历方式考试必考map中每个元素是键值对.first访问 key键.second访问 value值1. 范围for强化循环重点考点for(auto p : mp){ cout 键 p.first 值 p.second endl; }2. 迭代器遍历//正向 for(auto it mp.begin(); it ! mp.end(); it){ cout it-first it-second endl; } ​//反向 for(auto it mp.rbegin(); it ! mp.rend(); it){ cout it-first it-second endl; }五、map 全套核心成员函数mp.size()获取键值对总个数 mp.empty()判断容器是否为空空返回true mp.clear()清空所有键值对 mp.erase(key)删除指定key的整组键值对 mp.find(key)按key查找元素返回迭代器find() 查找规则和set完全一致查找成功返回当前key的迭代器可取值查找失败返回mp.end()auto it mp.find(2); if(it ! mp.end()){ cout 找到 it-second; }else{ cout 不存在该键; }六、map 超级易错重难点下标访问自动创建数据陷阱使用mp[不存在的key]时不会报错会自动插入该keyvalue默认初始化为0/空。mapint, int mp; cout mp[10]; // 自动新增 key10, value0解决方案单纯判断key是否存在优先使用find()不要用下标判断七、map 初学高频易错点汇总map 排序只看key和value没有任何关系。key唯一下标法插入会覆盖原值insert法插入会保留原值忽略新值。set不能用[]下标map支持[]下标访问是最大区别。下标访问不存在的key会自动新增键值对统计场景极易出错。map遍历必须使用.first、.second取值不能直接输出元素。find函数仅根据key查找无法通过value查找数据。map有序、unordered_map无序做题需根据是否需要排序选择容器。#include iostream #include map #include string using namespace std; int main(){ mapint, string mp; // 1. 下标插入 覆盖修改 mp[2] C; mp[1] Python; mp[3] Java; mp[1] Python新版; // 2. 范围for遍历自动按key升序 cout map有序遍历结果 endl; for(auto p : mp) { cout key: p.first value: p.second endl; } // 3. find查找测试 auto it mp.find(2); if(it ! mp.end()){ cout \n查找成功 it-first it-second endl; }else{ cout \n查找失败 endl; } // 4. 删除元素 mp.erase(3); cout \n删除key3后剩余元素个数 mp.size() endl; return 0; }
RELATED

相关推荐

Python工厂管理系统毕设实战:轻量MES架构与PLC通信实现

Python工厂管理系统毕设实战:轻量MES架构与PLC通信实现

简介:本资源是一套完整的Python工厂管理系统毕业设计项目,面向计算机专业本科生及Python初学者,解决中小型制造企业生产流程数字化管理需求。系统基于Tkinter构建图形界面,集成库存管理、订单处理、生产调度、员工管理、数据库持久…

📅 2026/9/12 20:43:37
在 PostHog 中为新产品编写 ClickHouse 查询:从 HogQL 到索引与性能优化的完整工程实践

在 PostHog 中为新产品编写 ClickHouse 查询:从 HogQL 到索引与性能优化的完整工程实践

在 PostHog 中为新产品编写 ClickHouse 查询:从 HogQL 到索引与性能优化的完整工程实践 【免费下载链接】posthog :hedgehog: PostHog is the leading platform for building self-driving products. Our developer tools – AI observability, analytics, session …

📅 2026/9/12 20:43:37
Label Studio Python SDK 集成指南:将数据标注无缝接入机器学习流水线

Label Studio Python SDK 集成指南:将数据标注无缝接入机器学习流水线

Label Studio Python SDK 集成指南:将数据标注无缝接入机器学习流水线 【免费下载链接】label-studio Label Studio is a multi-type data labeling and annotation tool with standardized output format 项目地址: https://gitcode.com/GitHub_Trending/la/labe…

📅 2026/9/12 20:43:37
MORE NEWS

更多资讯

📰

为 PowerShell 启用 cilium-bugtool 命令行补全:原理、加载与持久化配置

为 PowerShell 启用 cilium-bugtool 命令行补全:原理、加载与持久化配置 【免费下载链接】cilium eBPF-based Networking, Security, and Observability 项目地址: https://gitcode.com/GitHub_Trending/ci/cilium 导读:cilium-bugtool 是 Cilium …

📰

Umi-OCR完整指南:三步跑通免费离线OCR,从截图到批量识别

Umi-OCR完整指南:三步跑通免费离线OCR,从截图到批量识别 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码…

📰

DBeaver 数据库客户端性能排障完整指南:四步解决启动慢与界面卡顿

DBeaver 数据库客户端性能排障完整指南:四步解决启动慢与界面卡顿 【免费下载链接】dbeaver Free universal database tool and SQL client 项目地址: https://gitcode.com/GitHub_Trending/db/dbeaver DBeaver(开源通用数据库客户端与 SQL 工具&…

📰

毕夏AI官网:当论文写作遇上AI5.0,一场关于“学术效率”的重新定义

毕夏AI官网 www.bixiaai.com 毕夏AI写作官网 www.bixiaai.com 毕夏官网 www.bixiaai.com 毕夏智能写作官网 www.bixiaai.com 一个被低估的事实:论文写作正在经历工具革命 如果你回看过去十年学术写作工具的变化,会发现一个有意思的断层。文献管理…

📰

把“毕夏AI官网”拆开看:一个学术智能体凭什么敢做全流程

毕夏AI官网 www.bixiaai.com 毕夏AI写作官网 www.bixiaai.com 毕夏官网 www.bixiaai.com 毕夏智能写作官网 www.bixiaai.com 先问一个问题:你写论文的时候,到底在焦虑什么? 不是不会写字。是从“选题”到“答辩”这条路上,…

📰

AI-Scientist 使用指南:让 AI 科研自动化平台从想法一路跑到完整论文

AI-Scientist 使用指南:让 AI 科研自动化平台从想法一路跑到完整论文 【免费下载链接】AI-Scientist The AI Scientist: Towards Fully Automated Open-Ended Scientific Discovery 🧑‍🔬 项目地址: https://gitcode.com/GitHub_Trending/…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬