以字符串这种支持
for (declaration : expression)
statement
这样for
语句迭代的数据结构为例,我们看看auto
关键字在类型推断中的作用。
string s = "I LOVE YOU!";
for (char ch : s){
cout << ch << endl;
}
输出:
I LOVE YOU!
这种情况下用不用auto
都无所谓,因为这时候auto
并不能减少代码量,但是一到复杂的循环时就可以体现出来了,因此最好还是用auto
。
像上面那样对string进行遍历并不能改变其本身,ch
是s
中每个字符的副本拷贝。想要改变s
本身,则要限定参与遍历的是引用: