您的位置:首页 > 编程语言 > C语言/C++

C++11特性:auto关键字与基于范围的for循环

2017-04-27 18:52 253 查看

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()方法,且返回该方法返回迭代器的类对象。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++11 c++