C 11特性之基于范围的for循环

注:文章部分引自博文:https://blog.csdn.net/lixiaogang_theanswer/article/details/79969012

1.介绍

采用c++11新特性中的基于范围for循环,不必去操心数组越界(边界)问题,因此非常的方便,特别是在项目开发中。

语法形式:
for(declaration:expression)
{
	statement
}

其中:
expression部分表示一个对象,用于表示一个序列。
declaration部分负责定义一个变量,该变量将被用于访问序列中的基础元素。
每次迭代,declaration部分的变量会被初始化为expression部分的下一个
元素值。


2.基于范围的for循环的特点

(1)和普通循环一样,也可以采用continue跳出循环的本次迭代。
(2)用break来终止整个循环


使用实例

使用基于范围的for循环可以提升自己的编码速度,减少代码量。下面是使用实例:
注意其中的变量类型可以直接用 auto。

#include<bits/stdc++.h>
using namespace std;
int main() {
	string s="123";
	vector<int> v(3,1);
	map<int,int> mapp;
	mapp[1]=1;mapp[2]=2;
	int a[5]={1,2,3,4,5};
	set<int> sett;
	sett.insert(1);sett.insert(2);
	for(char c:s) cout<<c;	
	for(int i:v) cout<<i;
	for(int i:a) cout<<i;
	for(int i:sett) cout<<i;
	for(pair<int,int> it:mapp) cout<<it.first<<" "<<it.second<<endl;
	return 0;
}