C++ 新特性
C++ 11
新特性包括:
- nullptr 替代 NULL引入了
- auto 和 decltype 这两个关键字实现了类型推导
- 基于范围的 for 循环for(auto& i : res){}
- 类和结构体的中初始化列表
- Lambda 表达式(匿名函数)
- std::forward_list(单向链表)
- 右值引用和move语义
C++ NULL 和 nullptr
NULL来自C语言,一般由宏定义实现,而 nullptr 则是C++11的新增关键字。在C语言中,NULL被定义为(void*)0,而在C++语言中,NULL则被定义为整数0。nullptr在C++11被引入用于解决这一问题,nullptr可以明确区分整型和指针类型,能够根据环境自动转换成相应的指针类型,但不会被转换为任何整型,所以不会造成参数传递错误。
智能指针
具体见文章:智能指针
Lambda 表达式
具体见文章:Lambda
右值引用和 move 语义
具体见文章:右值
自动类型推导
具体见文章:自动类型推导