C++中遍历map常用迭代器和auto关键字,推荐使用范围for循环结合const auto&高效访问键值对。

在C++中,map 是一种关联容器,用于存储键值对(key-value pairs),并自动根据键进行排序。遍历 map 容器是日常开发中的常见操作,常用的方法包括使用迭代器和 auto 关键字。下面详细介绍这两种方式。
使用迭代器遍历 map
map 提供了 begin() 和 end() 成员函数,分别返回指向第一个元素和末尾之后位置的迭代器。通过循环结合迭代器可以访问每个键值对。
map 的迭代器指向的是 std::pair 类型的对象,first 成员为键,second 成员为值。
#include #include
输出结果:
立即学习“C++免费学习笔记(深入)”;
Key: Alice, Value: 95
Key: Bob, Value: 87
Key: Charlie, Value: 92
使用 const_iterator 遍历只读 map
如果 map 是 const 或你只想进行只读访问,应使用 const_iterator,这样更安全且符合语义。
for (map::const_iterator it = scores.cbegin(); it != scores.cend(); ++it) { cout <first << ": " <second << endl;}
使用 auto 关键字简化遍历(C++11 起)
C++11 引入了 auto 关键字,编译器可自动推导变量类型,极大简化了迭代器声明。
// 使用 auto 声明迭代器for (auto it = scores.begin(); it != scores.end(); ++it) { cout <first < " <second << endl;}
使用范围 for 循环 + auto(推荐写法)
C++11 还支持基于范围的 for 循环,结合 auto 可以写出更简洁、易读的代码。
// 范围 for 循环遍历 mapfor (const auto& pair : scores) { cout << pair.first << ": " << pair.second << endl;}
说明:
const auto& 表示对每一对键值引用访问,避免拷贝 pair 对象,提高效率。 如果需要修改值,可使用 auto&,但不能修改 key(map 的 key 是 const 的)。
遍历时修改 value 值的例子
// 修改 map 中的 valuefor (auto& pair : scores) { pair.second += 5; // 加分操作 cout << pair.first << "'s new score: " << pair.second << endl;}
注意:不能通过 pair.first 修改 key,因为 map 中的 key 是不可变的。
基本上就这些。使用 auto 和范围 for 循环是现代 C++ 推荐的方式,代码更清晰、不易出错。迭代器方式在需要反向遍历或精确控制时仍有用武之地。掌握这些方法,能更高效地处理 map 容器。
以上就是C++如何遍历map容器_C++ map迭代器与auto关键字遍历方法的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1486167.html
微信扫一扫
支付宝扫一扫