1.C++11新特性
1.Lambda 表达式,用于创建匿名函数的。既可以减少函数数量,又会让代码变得清晰易读。
[](实参)->return type {body}
- [] // 不捕获任何外部变量
- [=] // 以值的形式捕获所有外部变量
- [&] // 以引用形式捕获所有外部变量
2.自动推导auto和decltype
新的操作符 decltype 可以从一个表达式中“俘获”其结果的类型并“返回”.可作用于函数。
3.统一的初始化语法
{}
4.=default要求编译器生成默认构造函数
5.nullptr 是一个新的 C++ 关键字,它是空指针常量,它是用来替代高风险的 NULL 宏和 0 字面量的。
6.移动构造函数:在某些情况下,对象拷贝后就被立即销毁。如果出现这种情况,显然移动而非拷贝会大幅提升性能。也就是我们将要拷贝的内容的控制权直接给另一个对象,而不是再拷贝一份。
7.move函数是做什么的
move函数告诉编译器:我们有一个左值,但我们希望像一个右值一样处理它。调用move函数就意味着我们向编译器承诺:除了对rr1赋值或销毁它外,我们将不再使用它。
7.智能指针:为了更容易安全的管理动态内存,s_ptr:多个指针可以指向同一个对象,析构函数递减引用计数器,为0后销毁对象。u_ptr:独占所指向的对象,不支持拷贝,赋值,但可以通过release和reset进行转移。w_ptr:不控制所指向对象的生存周期,w绑定到s上不会增加引用计数的值,s引用计数为0依旧销毁,use_count(),lock()。
8.范围for循环
9.unordered_map:存储上组织为一组桶