【C++小知识】基于范围的for循环(C++11)

基于范围的for循环(C++11)

范围for的引入

cpp 复制代码
int main(void)
{
	int arr[] = { 1,2,3,4,5,6,7,8,9 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	for (int i = 0; i < sz; i++)
	{
		cout << arr[i] << " ";
	}
	return 0;
}

在C++98里面遍历一个数组,或者说是一个有范围的集合而言,对应程序员来说明循环的范围是多余的。

因此C++11中引入了基于范围的for循环,for循环后面的括号由冒号":"分为俩部分:第一部分是范围内用于迭代的变量,第二部分则表示被迭代的范围。

cpp 复制代码
for(declaration : range)
{}

declaration是变量声明,用于存储每次迭代中的元素值,可以是自定义的变量名,也可以是已有的变量名。

range是要遍历的容器或者迭代的对象。

【注意】与普通循环类似,可以用continue来结束本次循环,也可以用break来跳出整个循环。

cpp 复制代码
int main(void)
{
	int arr[] = { 1,2,3,4,5,6,7,8,9 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	for (auto a : arr)
	{
		cout << a << " ";
	}
	return 0;
}

范围for的使用条件

1.for循环迭代的范围必须是确定的。

(1)对于数组而言,就是数组中第一个元素和最后一个元素的范围

(2)对于类而言,应该提供begin和end的方法,begin和end就是for循环迭代的范围

2.迭代的对象要实现++和==的操作。

相关推荐
随意起个昵称7 分钟前
线性dp-LIS题目5(导弹拦截,二分优化)
c++·算法·动态规划
光电笑映17 分钟前
进程间通信:深入 System V IPC:共享内存、消息队列与信号量
linux·运维·服务器·c++
a诠释淡然31 分钟前
C++模板元编程—现代C++的黑魔法
开发语言·c++
汉克老师31 分钟前
GESP2026年3月认证C++六级真题与解析(单选题1-8)
c++·多态··构造函数·循环队列·bst·gesp6级
charlie11451419139 分钟前
现代C++工程:constexpr 基础:编译期求值的艺术
开发语言·c++
小欣加油44 分钟前
leetcode121买卖股票的最佳时机
数据结构·c++·算法·leetcode·职场和发展
牛油果子哥q1 小时前
【C++运算符重载】C++运算符重载终极精讲:单目/双目/关系/赋值运算符重载、成员与全局重载、重载禁区、底层原理与企业级工程规范
开发语言·c++
2601_961845151 小时前
2026四级作文预测题|英语四级写作押题+提纲PDF
java·c语言·数据库·c++·python·pdf·php
郝亚军1 小时前
Visual Studio 2022项目中的.sln是什么?
c++·c#·visual studio
暖阳华笺1 小时前
【高频考点】K-Means聚类算法
c++·算法·机器学习·kmeans·聚类