新增容器
C++11 新容器 | 描述 |
---|
std::array | 固定大小的数组容器 |
std::forward_list | 单向链表容器 |
std::unordered_map | 哈希表实现的容器,一键对一值,不保证有序 |
std::unordered_multimap | 哈希表实现的容器,一键对多值,不保证有序 |
std::unordered_set | 哈希表实现的容器,快速查找元素是否存在集合中,不保证有序 |
std::unordered_multiset | 哈希表实现的容器,快速查找元素是否存在集合中,不保证有序,允许存在相同的元素 |
std::tuple | 多元组容器,可以保存多个不同类型的元素,主要用于函数返回多个值的情况,也可以用于结构体的替代 |
新增库函数
新增库 | 描述 |
---|
std::chrono | 提供时间测量和表达的功能 |
std::thread | 提供了各种线程管理函数 |
std::atomic | 原子变量,提供多线程并发操作和线程安装的保证 |
std::condition_variable | 条件变量,提供多线程并发操作 |
std::future std::promise | 异步编程,提供异步操作接口和通信机制 |
std::regex | 正则表达式,提供正则表达式匹配功能 |
C++11新特性
C++11 新特性/语法 | 描述 |
---|
auto | 用于类型自动推导,在变量声明时可以自动判断变量类型 |
decltype() | 用于推导表达式的类型,主配合auto 或模板使用 |
nullptr | 取代NULL 指针,在类型安全和可读性上更加方便 |
for(auto x:T) | x为临时变量,T为容器,作用是遍历容器元素 |
Lambda表达式 | 匿名函数,极大简化编程 |
智能指针 | std::unique_ptr<T> 独占资源所有权的指针。std::shared_ptr<T> 共享资源所有权的指针。 std::weak_ptr<T> 共享资源的观察者,需要和 std::shared_ptr 一起使用,不影响资源的生命周期 |
std::move() | 移动语义,将左值转化为右值,另外还会转移资源所有权 |
constexpr | 编译时常量表达式,类似于宏定义 |
右值引用 && | 可以绑定到临时对象或表达式上,提高程序性能 |
变长参数模板 | 参数可变如: template<typename… Args> |
静态断言 | 编译时检查是否满足条件,发现程序错误 |
继承构造函数 | 可以将父类构造函数和子类构造函数合并成一个构造函数 |
随机数 | 可以通过std::random_device 和std::mt19937 实现真随机数 |
emplace | 大多容器增添了更为高效的头插和尾插,直接在容器内部构造元素,避免了多余的拷贝函数 |
Lambda表达式
我觉得这真是个好东西,用的好能玩出花来
这个博主总结的挺好 C++——Lambda函数