auto是C++ 11 的另一个新特性,其实大家可能之前就见过这个关键字,Java也有这个保留字,当然最早使用这个关键字的是asni c,但是在C语言,或者更早的C++ 98中auto很少被使用,且作用不大,在C中的变量,不是global的就是auto类型的。是一种默认的修饰符。所以在C++ 11 中就又重新定义了auto关键字,供大家来使用。
注意了 auto已经不是N年前的那个auto了,他穿越到现代了,哈哈。
总的来说auto关键字主要有两个用处,第一个就是自动类型推断,第二个是返回值占位符。废话不多说,先来看一段代码:
///auto的自动类型推断实例///
//使用auto初始化变量
auto a = 10;
printf("a = %d",a);
auto b("auto");
printf("b = %s",b);
//使用auto消除冗长
map<string,vector<int> > _map;
map<string, vector<int> >::const_iterator itr1 = _map.begin();
auto itr2 = _map.begin();
//使用auto声明lambda表达式
auto func = [](){printf("auto!!!");};
//执行func
f