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使用,能访问对象,但不具备所有权,解决了循环引用问题