• 作用:循环

常规思路,我们想要输出一个数组的全部元素时,往往采用以下的方法:

//随机定义的数组
int array[10] = { 54, 23, 78, 9, 15, 18, 63, 33, 87, 66 };

for (int i = 0; i < 10; i++) {
	cout << array[i] << " ";		//输出:54 23 78 9 15 18 63 33 87 66
}

在C++11标准中,我们可以在for循环使用冒号 : 来简化这一过程:

int array[10] = { 54, 23, 78, 9, 15, 18, 63, 33, 87, 66 };
	
for (auto a : array) {
	cout << a << " ";		//输出:54 23 78 9 15 18 63 33 87 66
}
  • 注意点

1、需要编译器支持C++11及以上的标准

2、形如 for(auto c:s) 的格式,auto可以是别的数据类型比如char,int,const char*等等各类数据类型,可以是自定义的数据类型。c是一个变量名称,可以按变量名规则任意定义;s是一个容器名称,可以是一个数组,可以是string等等。

3、for(auto &c:s)与for(auto c:s)的区别1:
for(auto c:s)中b为一个容器,效果是利用c遍历并获得s容器中的每一个值,但是c无法影响到s容器中的元素。
for(auto &c:s)中加了引用符号,可以对容器中的内容进行赋值,即可通过对c赋值来做到容器s的内容填充。

#include <iostream>
#include <string>
using namespace std;

int main(void)
{
    string s("hello world");

    for (auto c : s) {
        cout<<c<<endl;
        c = 't';
    }

    cout << s << endl; //结果为hello world

    for (auto& c : s) {
        c = 't';
    }

    cout << s << endl; //结果为ttttttttttt
}


输出
h
e
l
l
o

w
o
r
l
d
hello world
ttttttttttt

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐