下面我们简单的对c++11的特性进行一个整体的了解,这里我只根据自己平时所用的和所了解的,简单介绍其作用,具体的感兴趣的可以搜索一下关键字,问度娘进行进一步的了解。
- long long 类型:新增的数据类型
- 列表初始化 : 允许变量用{}初始化,对于stl容器很方便
- nullptr常量:为了统一大家判定指针为空的写法习惯,有些写法在特定情况下会有问题:点击打开链接
- constexpr变量: coonst类型变量
- 类型别名声明:using代替typedef
- auto类型指示符:类型推断,很常用
- decltype类型指示符:推断变量的类型以及函数返回值类型
- 类内初始化:允许类的非静态变量在定义时直接初始化
- 使用auto或 decltype缩写类型:c++11不支持函数的返回类型用auto,但是可以配合decltype实现函数的返回类型后置(c++14已废弃,c++14函数返回类型可以用auto)
- 范围for语句 :(for a : b),不能应用于动态分配数组
- 定义 vector对象的 vector(向量的向量) :之前我们定义这样的变量是要要个在最后>>之间加上一个空格,现在不用了。
- vector对象的列表初始化
- 用大括号包围的值列表赋值
- 将 sizeof用于类成员: sizeof的参数,可以不通过对象,直接使用作用域运算符来获取成员的大小。
- 标准库 initializer list类:一个初始化容器的模板类
- 列表初始化返回值: 例:return {1,2},实际上返回了一个vector
- 定义尾置返回类型:用起来很丑陋,c++14已废弃
- constexpr函数:给函数赋予编译时计算的能力,类似于#define
- 使用= default生成默认构造函数
- 委托构造函数:允许构造函数调用另一个构造函数
- constexpr构造函数:
- aray和 forward list容器
- 容器的非成员函数swap
- 容器 Insert成员的返回类型 :c++11 insert返回新加元素的迭代器
- 容器的 emplace成员:调用插入对象的构造函数,而非insert拷贝插入对象
- shrink to fit:调用此函数可以使deque,vector,string退回不需要的空间
- string的数值转换函数
- lambda表达式
- 标准库bind函数
- 无序容器: unordrered_map,unordrered_set,unordrered_multiset底层使用hash算法,而不是红黑树(map)
- 智能指针:使用引用计数管理自动释放内存,不用手动释放内存
- shared_ptr类:智能指针
- unique_tr类:智能指针
- weak ptr类:智能指针
- allocator: construct可使用任意构造函数
- 将= default用于拷贝控制成员
- 使用= delete阻止拷贝类对象
- 用移动类对象代替拷贝类对象:对于进一步提高c++的效率很有用
- 右值引用
- 标准库move函数…
- 移动构造函数和移动赋值…
- 移动构造函数通常应该是 except
- 移动迭代器
- 引用限定成员函数
- function类模板:实际上就是函数变量
- explicit类型转换运算符
- 虚函数的 override指示符:表示函数是继承而来
- 通过定义类为final来阻止继承
- 虚函数的 override和final指示符:final函数不允许被继承
- 声明模板类型形参为友元
- 模板类型别名
- 模板函数的默认模板参数
- 实例化的显式控制
- 模板函数与尾置返回类型(c++14废弃)
- 用 static cast将左值转换为右值
- 标准库 forward函数…
- 可变参数模板:这个很有用
- sizeof.....运算符:当有多个变量时可用sizeof...运算符
- 可变参数模板与转发
- 标准库 tuple类模板
- 新的 bitset运算
- 正则表达式库
- 随机数库
- 浮点数格式控制…
- except异常指示符
- except运算符
- 内联命名空间
- 继承的构造函数与多重继承
- 有作用域的enum
- 说明类型用于保存enum对象
- enum的前置声明
- 标准库 mem fn类模板:将类成员函数转换为函数指针
- c++11 多线程和并发编程标准库:新的标准库中增加了很多关于多线程和并发编程的类:thread,future模板类,atmoic模板类,condition_variable,packaged_task,lock相关的类等等。详细请看<<C++11新标准的并发和多线程编程深度指南>> ,下载链接: https://pan.baidu.com/s/1epcMwIAz76ftVfLZ4oj4sA 密码: epcx
- 最后介绍一本书,<<c++11新特性解析及应用>>链接: https://pan.baidu.com/s/1BKYtSwH6UapihQ57-5_TGw 密码: w8sw