范围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() 的容器。
遍历数组和标准容器
以下是一个遍历整型数组的例子:
立即学习“”;
int arr[] = {1, 2, 3, 4, 5}; for (int x : arr) { std::cout << x << " "; }
登录后复制
输出结果为:1 2 3 4 5
对 std::vector 的遍历同样简单:
基于AI技术的免费在线简历制作工具
128
std::vector<std::string> words = {"hello", "world", "cpp"}; for (const std::string& word : words) { std::cout << word << " "; }
登录后复制
这里使用 const std::string& 可避免复制字符串,提升效率。
修改容器中的元素
如果想通过范围for循环修改原容器中的元素,必须使用引用:
std::vector<int> 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++简化遍历的现代写法的详细内容,更多请关注php中文网其它相关文章!
相关标签:
微信扫一扫打赏
支付宝扫一扫打赏
