auto关键字
C++中的auto关键字是一个类型说明符,通过变量的初始值或者表达式中参与运算的数据类型来推断变量的类型。编程时通常需要把表达式值式赋给变量,这就要求在声明变量时清楚的知道表达式的类型,C++11新标准引入了auto 类型说明符,让编译器去分析表达式的类型。由于,需要编译器推断变量或表达式的类型,所以,auto定义的变量必须初始化
用法:
for (auto declaration : expression)
{
statement
}
declaration 部分定义一个变量,该变量用于访问序列中的基础元素,expression部分是一个对象,用于表示一个序列。
每次迭代,declaration部分的变量会初始化为expression部分的下一个元素值,statment是对字符的操作语句
for(auto iter:vec)不改变迭代对象的值,for(auto &iter:vec)可以改变迭代对象的值。
两者都可以获取到迭代容器中的值,但是使用auto iter时不会对容器对象造成改变,
而使用auto &iter,对iter的任何修改将直接修改容器内对应的值。