C++ map遍历的几种方式_C++ map迭代器与C++11 range for循环


C++中遍历std::map的常见方式包括:传统迭代器适用于所有标准,const_iterator用于只读访问,auto简化迭代器声明,C++11 range for循环推荐使用,C++17结构化绑定更清晰。

c++ map遍历的几种方式_c++ map迭代器与c++11 range for循环

C++ 中 std::map 是一种常用的关联容器,用于存储键值对(key-value pairs),并自动按键排序。在实际开发中,经常需要遍历 map 中的所有元素。本文介绍几种常见的 C++ map 遍历方式,包括传统迭代器和 C++11 引入的 range for 循环。

使用传统迭代器遍历

这是最经典、兼容性最好的方式,适用于所有 C++ 标准版本。

通过 begin()end() 获取迭代器,然后用循环逐个访问元素。

#include <map>
#include <iostream>
<p>std::map<int, std::string> myMap = {{1, "apple"}, {2, "banana"}, {3, "cherry"}};</p><p>for (std::map<int, std::string>::iterator it = myMap.begin(); it != myMap.end(); ++it) {
std::cout << "Key: " << it->first << ", Value: " << it->second << std::endl;
}</p>

说明:

  • it->first 访问键(key)
  • it->second 访问值(value)
  • 迭代器是双向迭代器,支持 ++ 和 -- 操作

使用 const_iterator(只读遍历)

如果你只是读取 map 内容而不修改,建议使用 const_iterator,提高代码安全性。

for (std::map<int, std::string>::const_iterator it = myMap.begin(); it != myMap.end(); ++it) {
    std::cout << "Key: " << it->first << ", Value: " << it->second << std::endl;
}

这种方式能防止意外修改 map 元素,适合在 const 函数或只读场景中使用。

使用 auto 简化迭代器声明(C++11 起)

C++11 支持 auto 关键字,可避免冗长的类型声明。

SuperDesign SuperDesign

开源的UI设计AI智能体

SuperDesign 216 查看详情 SuperDesign
for (auto it = myMap.begin(); it != myMap.end(); ++it) {
    std::cout << "Key: " << it->first << ", Value: " << it->second << std::endl;
}

代码更简洁,且易于维护。如果 map 类型改变,无需修改循环中的类型。

使用 C++11 range for 循环(推荐)

C++11 引入了基于范围的 for 循环(range-based for),语法更直观。

for (const auto& pair : myMap) {
    std::cout << "Key: " << pair.first << ", Value: " << pair.second << std::endl;
}

说明:

  • pair 是 map 中每个元素的类型,即 std::pair
  • 使用 const auto& 可避免拷贝,提升性能
  • 只读场景下推荐加 const,防止误修改

若你需要修改 value(注意:不能修改 key),可以使用非 const 引用:

for (auto& pair : myMap) {
    pair.second += "_modified"; // 合法:修改 value
    // pair.first = 100; // 非法:key 是 const,不可修改
}

使用结构化绑定(C++17 起,额外补充)

如果你使用 C++17 或更高版本,可以进一步简化:

for (const auto& [key, value] : myMap) {
    std::cout << "Key: " << key << ", Value: " << value << std::endl;
}

语法更清晰,直接解包键值,是目前最推荐的写法(若编译器支持)。

基本上就这些常见方式。从兼容性考虑可用传统迭代器,新项目建议使用 range for + auto 或结构化绑定,代码更简洁安全。

以上就是C++ map遍历的几种方式_C++ map迭代器与C++11 range for循环的详细内容,更多请关注其它相关文章!


# ai  # 广告推广营销布局策略  # seo网络营销推广广告  # 府谷关键词排名优化软件  # 漳州网站建设银行图片  # 英山网站推广公司  # seo职业道德要求  # 纳雍网站推广  # 操作方法  # 适用于  # 结构化  # 如果你  # 绑定  # 键值  # 如何使用  # 几种  # 迭代  # 遍历  # 键值对  # stream  # apple  # ios  # c++  # app  # seo中url的含义  # 小旋风泛目录seo  # 低价网站建设内容 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: J*a里如何处理ArithmeticException并防止除零_算术异常防护策略解析  苹果自助维修计划支持哪些设备机型  VS Code的时间线(Timeline)视图:您的代码时光机  Cassandra中复合主键、二级索引与ORDER BY排序的限制与解决方案  网页版网易云音乐入口_网易云音乐在线官网登录  荣耀 Magic10 Pro 系统更新提示失败_荣耀 Magic10 Pro 升级修复  顺丰速运官网查询入口 顺丰物流查询官网入口链接  《图怪兽》退出登录方法  高德地图导航路线偏差报警频繁怎么办 高德地图路线偏差修复与优化方法  优化Asyncio嵌套函数调度:使用生产者-消费者模式实现并发流处理  《雷电模拟器》截图方法介绍  《三角洲行动》战斗步枪与机枪类改装代码分享  如何查询个人病历记录  使用Google服务账号实现Google Drive API无缝集成与文件访问  荣耀magicv5怎么上手测评  多闪电脑版下载_多闪PC端模拟器使用  键盘声音异常怎么回事_键盘异响怎么处理  PHP 4 函数中引用参数的默认值限制与解决方案  PDF如何批量加注释_PDF多文件批注高亮操作教程  《腾讯相册管家》注销账号方法  百度地图离线地图无法加载如何解决 百度地图离线地图加载优化方法  使用CSS :has() 选择器实现父元素样式控制:从子元素反向应用样式  yy漫画登录页面官方入口_yy漫画在线阅读网址入口  POKI小游戏在线免费入口链接 POKI小游戏无下载秒玩玩  使用Python和GBGB API高效抓取指定日期范围和赛道比赛结果教程  Dash应用中自定义HTML页面标题与网站图标(F*icon)的实用指南  斯宾塞称XGP云游戏“蒸蒸日上”:正在构建一个游戏从未如此唾手可得的未来  《爱南宁》认证电动车方法  谷歌浏览器怎么把网页翻译成中文_Chrome网页翻译功能使用方法  mysql如何配置从库只读_mysql从库只读设置方法  Safari浏览器自动填表功能失效怎么办 Safari表单管理修复  苹果电脑如何快速截图并编辑 苹果电脑截屏标注快捷操作  苹果SE如何开启单手模式_苹果SE单手操作功能  《浙里办》电子发票开具方法  《360浏览器》自动保存账号密码设置方法  《下一站江湖2》风神腿获取攻略  汽水音乐官网网页版入口 汽水音乐官网网页版在线入口  聚水潭ERP后台管理系统登录 聚水潭ERP官方登录通道  邮政快递寄件查询入口 邮政快递收件查询入口  TikTok私信无法发送表情怎么办 TikTok消息表情发送修复方法  ao3入口镜像地址 ao3镜像入口可靠跳转  J*aScript:从子元素中批量移除特定CSS类  Golang如何实现HTTP请求重试机制_Golang HTTP请求错误处理策略  C++ bind函数使用教程_C++参数绑定与函数适配器的应用  163邮箱网页版官方登录入口 163邮箱网页版访问页面  豆包AI怎样为教育场景定制答疑逻辑_为教育场景定制豆包AI答疑逻辑方案【方案】  微信网页版在线登录 微信网页版在线使用入口  sublime怎么在文件中显示代码结构大纲_sublime符号列表功能  怎么恢复删除的电脑文件_数据恢复软件使用教程  PHP中获取HTTP响应状态消息:方法与限制 

 2025-11-28

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.