STL相关
sort
使用的排序算法
- 数据量大时使用快速排序
- 数据量小时使用插入排序
- 递归层数很深时使用堆排序。递归层数深可能时随机分区不规律引起的。
四种类型转换
static_cast
- 基础数据类型之间的转换
- 任意类型指针与
void *
之间的转换 - 父子类之间的转换,无类型检查
const_cast
非常量转换为常量
dynamic_cast
父子类之间转换,有类型检查。
reinterpreted_cast
任意类型转换,不抛出异常
四种智能指针
auto_ptr
C++11中已弃用
unique_ptr
只能有一个指针有对象所有权。用构造函数或std::move()
来转移所有权
shared_ptr
有多个指针可以有对象所有权,当所有指针都销毁时,销毁对象
weak_ptr
必须配合shared_ptr
使用,能访问对象,但不具备所有权,解决了循环引用问题