范围for循环

范围for循环

前言

C++11引入的新特性,此for循环只适用于支持迭代器的容器,例如数组、vector、set、map等,而不能用于普通的指针或者基本数据类型。

普通for循环

语法规则

for (initialization; condition; increment) {
    // loop body
}

这个循环内容就不多讲了

范围for循环

语法规则

for (auto& element : mySet) {
    // loop body
}
  • 第一个元素,auto& element是循环变量,表示每次循环赋值给element
  • 第二个元素,mySet是定义的set容器,表示遍历此容器的元素
set容器实例
std::set<int> mySet = { 10, 20, 5, 30 };
for (auto& element: mySet) {
	std::cout << element << " ";
}

如果不用范围for循环,可以使用迭代器进行遍历

对比
for (auto it = mySet.begin(); it != mySet.end(); ++it) {
    std::cout << *it << std::endl;
}

范围for循环以一个冒号作为分割

普通for循环以两个分号作为分割

数组实例

一般遍历数组都是用普通for循环,但你知道使用范围for循环吗

范围for循环遍历数组

	int arr[4] = { 1,2,3,4 };

	for (auto& element: arr) {
		std::cout << element << " ";
	}
数组优缺点

传统for循环

优点:可以更好地控制循环的细节,例如可以自定义循环变量的初始值、循环结束的条件等,还可以在循环体内使用break,continue,改变循环的执行流程。

范围for循环

优点:相比传统的for循环更加简洁明了,可以避免一些常见的陷阱,例如数组越界、循环变量类型错误等问题。也可以自动推导元素的类型。范围for循环通常使用在简单的遍历中,复杂的还是用传统的for循环吧。

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值