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

来源:互联网 发布:js arguments 回调函数 编辑:程序博客网 时间:2024/06/06 00:25

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()方法,且返回该方法返回迭代器的类对象。

0 0
原创粉丝点击