c++新特性
c++11
右值引用
新增数据结构
新增数据结构
std::forward_list:单向链表,只可以前进,在特定场景下使用,相比于std::list节省了内存,提高了性能
std::unordered_set:基于hash表实现的set,内部不会排序,使用方法和set类似
std::unordered_map:基于hash表实现的map,内部不会排序,使用方法和set类似
std::array:数组,在越界访问时抛出异常,建议使用std::array替代普通的数组
std::tuple:元组类型,类似pair,但比pair扩展性好
enum class
chrono库
atomic
底层实现: 在内核中记录threadid 通过比较threadid来对数据进行更改, lock
auto
thread
mutex
其中lock_guard与shared_ptr相同 提供了一种方便的 RAII style 机制
在类结束会调用析构函数来对mutex进行释放
类 unique_lock 是通用互斥包装器,允许延迟锁定、锁定的有时限尝试、递归锁定、所有权转移和与条件变量一同使用.
lambda function bind
std::function的实例可以存储、复制和调用任何可调用对象,存储的可调用对象称为std::function的目标,若std::function不含目标,则称它为空,调用空的std::function的目标会抛出std::bad_function_call异常。
std::bind通常有两大作用:
将可调用对象与参数一起绑定为另一个std::function供调用
将n元可调用对象转成m(m < n)元可调用对象,绑定一部分参数,这里需要使用std::placeholders