auto
auto关键词在c++98中就有过,用来定义变量为自动生命周期,完全是鸡肋,因为不用auto变量本来就是自动生命周期啊,所以c++11中,auto的用法改变了,简单来说它的作用就是声明变量时可以根据变量类型自动推断类型。类似于java中的var。
例如
int a = 0;//auto只能识别初始化的变量。
auto b = a;//b被推断为int。
但是auto的出现是为了解决一些变量定义时类型名过长的情况,而不是上面这种情况,简单的类型名直接给出可以使代码更加清晰。例如使用迭代器的时候就可以使用auto。
vector<int> v;
auto I = v.begin();
基于范围的for循环
直接给出一段代码
vector<int> vec;
vec.push_back(1);
vec.push_back(2);
for (int x: vec)
{
cout << x << endl;
}
这样就可以做到对vector里的整型进行遍历。减少了代码量。
可以遍历的对象包括数组和定义了begin()和end()方法,且返回该方法返回迭代器的类对象。