范围for循环简化容器遍历,语法为for (declaration : range),可直接访问元素;2. 适用于数组、vector等支持begin/end的容器。

在C++11及以后的标准中,引入了范围for循环(range-based for loop),它提供了一种简洁、安全的方式来遍历容器或数组中的每个元素,无需手动管理迭代器或下标。
基本语法
范围for循环的语法如下:
for (declaration : range) { // 循环体}
其中:
declaration:声明一个变量,用来接收当前遍历到的元素。 range:要遍历的对象,比如数组、std::vector、std::array、std::string 等支持 begin() 和 end() 的容器。
遍历数组和标准容器
以下是一个遍历整型数组的例子:
立即学习“C++免费学习笔记(深入)”;
int arr[] = {1, 2, 3, 4, 5};for (int x : arr) { std::cout << x << " ";}
输出结果为:1 2 3 4 5
对 std::vector 的遍历同样简单:
std::vector words = {"hello", "world", "cpp"};for (const std::string& word : words) { std::cout << word << " ";}
这里使用 const std::string& 可避免复制字符串,提升效率。
修改容器中的元素
如果想通过范围for循环修改原容器中的元素,必须使用引用:
std::vector nums = {10, 20, 30};for (int& num : nums) { num *= 2;}// nums 变为 {20, 40, 60}
如果不加引用(&),循环中的变量只是副本,修改不会影响原数据。
注意事项与限制
范围for循环虽然方便,但也有使用限制:
不能直接获取当前元素的索引。如需索引,应使用传统for循环或结合计数器。 不适用于动态生成的数据流或指针指向的未知长度数组(除非是std::array或有begin/end支持)。 在范围表达式为函数返回值时,注意对象生命周期,避免悬空引用。
基本上就这些。掌握范围for循环能让代码更清晰、少出错,是现代C++编程中推荐的遍历方式。
以上就是C++如何使用范围for循环(range-based for loop)_C++简化遍历的现代写法的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1483853.html
微信扫一扫
支付宝扫一扫