【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.迭代的对象要实现++和==的操作。

相关推荐
间歇性努力持续性发呆的野生快乐选手2 小时前
栈的性质(进栈,出栈,访问)
数据结构·c++
旖旎夜光2 小时前
LeetCode 904:水果成篮(滑动窗口) —— 题解
数据结构·c++·算法·leetcode·滑动窗口
乐观勇敢坚强的老彭4 小时前
C++ 竞赛常用算法模板速查表
开发语言·c++·算法
我变成萤火虫4 小时前
河南萌新联赛2026第(三)场:郑州轻工业大学
数据结构·c++·算法·贪心算法·stl·深度优先·哈希算法
buhuizhiyuci5 小时前
【Linux 篇】数字世界的水流蓄水池 —— IO 缓冲区机制深度实战解析
linux·运维·服务器·c++
liulilittle5 小时前
LLM 推理引擎与内核系统工程原理
c++·ai·llm·内存·memory·core·kernel
啦啦啦啦啦zzzz5 小时前
moduo网络库 Acceptor TcpConnection
服务器·网络·c++·reactor·网络库
键盘会跳舞5 小时前
C++:右值引用与移动语义源码级深度拆解——现代C++性能优化的语言基石
c++·右值引用·移动语义
码匠许师傅6 小时前
【C++ 面试真题】聊聊 C++ 的虚函数和多态
java·c++·面试
lidtao6 小时前
青少年信息学奥赛C++四阶段学习路线(L1-L4完整体系)
c++·学习·软件工程·教培资源分享