问题
C++11新增了很多新特性,这也成为了面试中非常常见的问题,这里介绍一些常用的新特性。C++11新特性有很多,这里就简单整理几个很常见的,应该足以应对面试中的问题了。
C++11新特性
● 初始化列表
初始化列表,即用花括号来进行初始化。C++11中可以直接在变量名后面跟上初始化列表来进行对象的初始化,使用起来更加方便,例如:
vector<int> vec; //C++98/03给vector对象的初始化方式
vec.push_back(1);
vec.push_back(2);
vector<int> vec{1,2}; //C++11给vector对象的初始化方式
vector<int> vec = {1,2};
● auto关键字
C++11之前,在使用表达式给变量赋值的时候需要知道表达式的类型,如char、int等,然而有的时候要做到这一点并不容易,因此,为了解决这个问题,C++11引入了auto
关键字,编译器可以分析表达式的结果来进行类型推导。当然,直接定义变量的时候也可以使用auto
来推导类型,可以理解为auto
相当于一个占位符,在编译期间会自动推导出变量的类型。