一、关键字及新语法
-
列表初始化:
int a{10}
。 -
auto:自动类型推导。
-
nullptr:空指针。
-
范围for:
for (auto v : vec)
。
二、STL容器
-
vector:动态数组。
-
list:双向链表。
-
deque:双端队列。
-
priority_queue:优先队列。
-
map 、set、multiset、multimap:红黑树。
-
unordered_map、unordered_set:哈希表。
三、多线程
-
thread:线程类。
-
condition_variable:条件变量。
-
atomic:原子类型。
四、智能指针
-
shared_ptr:拷贝一个shared_ptr,计数器都会递增;当我们给shared_ptr赋予一个新值或者shared_ptr被销毁时,引用计数会递减。
-
weak_ptr:不增加引用计数,主要是解决循环引用的问题。
-
unique_ptr:独占某一个对象,解决了auto_ptr赋值存在的问题
五、其他特性
-
lambda表达式:
auto add= [](int a, int b)->int{ return a + b; };
-
std::move:
vec.push_back(std::move(val));
-
std::function:
function<int(int, int)> f1 = add; //函数指针
; -
std::bind:
auto f_wrap = bind(f,x,y,_1,_2); //_1,_2是占位符,x和y是函数f的参数
;