C++如何使用范围for循环_C++11 for-each语法的简洁之道
发布时间:2025-11-26 15:28
发布者:网络
浏览次数:C++11引入范围for循环,简化容器遍历。语法为for (declaration : range),如遍历vector nums = {1,2,3,4,5}; for (int n : nums) cout

C++11引入了范围for循环(也称为基于范围的for循环或for-each循环),极大简化了对容器和数组的遍历操作。相比传统的for循环,它更简洁、安全,且不易
出错。
基本语法
范围for循环的语法格式如下:
for (declaration : range) {
// 循环体
}
declaration 是用于声明当前元素的变量,range 是要遍历的对象,如数组、vector、string等支持迭代的容器。
例如,遍历一个整型vector:
std::vector<int> nums = {1, 2, 3, 4, 5};
for (int n : nums) {
std::cout << n << " ";
}
输出结果为:1 2 3 4 5
使用引用避免拷贝
如果容器中元素是类对象或大型数据结构,直接值传递会触发拷贝,影响性能。此时应使用引用:
std::vector<std::string> words = {"hello", "world"};
for (const std::string& word : words) {
std::cout << word << " ";
}
使用 const std::string& 可避免拷贝,同时防止意外修改原数据。若需要修改元素,则使用非const引用:
for (std::string& word : words) {
word += "!"; // 修改原容器中的元素
}
支持的类型
范围for循环适用于所有提供 begin() 和 end() 成员函数或可用ADL查找到对应自由函数的类型。常见包括:
- 数组(内置数组和std::array)
- 标准容器:vector、list、set、map等
- 字符串(std::string)
- 初始化列表(initializer_list)
例如遍历C风格数组:
int arr[] = {10, 20, 30};
for (int x : arr) {
std::cout << x << " ";
}
注意事项
不能用于动态分配的指针数组(即通过new创建的数组),因为其不保留大小信息。以下代码是错误的:
int* ptr = new int[3]{1, 2, 3};
// for (int x : ptr) // 编译错误!ptr不是范围类型
应优先使用std::vector或std::array代替。
基本上就这些。掌握范围for循环后,你会发现遍历操作变得直观又高效。
以上就是C++如何使用范围for循环_C++11 for-each语法的简洁之道的详细内容,更多请关注其它相关文章!
# c++
# 遍历
# 数据结构
# 之道
# 有什么
# 如何使用
# 整型
# 重写
# 迭代
# 解决方法
# 适用于
# 广西强大seo渠道服务
# 莱芜推广seo优化
# 网络seo哪家有实力
# 广州地产网站推广托管
# 静安seo哪家好
# 偃师公司网站如何做推广
# 西藏外贸公司网站建设
# 相山抖音seo咨询
# 摄影seo案例
# 郑州网站建设要素




