
operator
unique_ptr不能复制只能移动,出生即绑定资源、析构自动释放;最安全创建方式是std::make_unique,支持数组和自定义删除器,访问前需判空,release/reset控制释放,误用易致...
std::optional用于替代魔数和非法状态,强制显式处理有值/无值情况,避免隐式假设;需判空后访问,支持value_or回退,不适用于动态内存管理或需错误信息的场景。
std::unordered_map默认用链地址法且不可替换为开放定址法;手写链地址法需桶数组+链表、质数容量与负载因子控制;开放定址法需删除标记和探测策略,二者适用场景不同。
size()返回当前元素个数,capacity()返回已分配内存可容纳的元素总数;resize(n)改变size()并可能初始化新元素,reserve(n)仅预分配capacity()不改变size(...
std::shared_ptr不实现写时复制(COW),仅管理对象指针的引用计数;COW需在对象层面手动实现,且须处理线程安全与统一写入口逻辑。
浅拷贝是按字节复制对象内存,深拷贝需手动实现以避免指针共享;当类含裸指针、自定义深拷贝成员或独占资源时必须重写拷贝构造函数、赋值运算符并遵循三/五法则。
placementnew是在已分配内存上仅调用构造函数的操作,而普通new既分配内存又调用构造函数;其本质区别在于placementnew不涉及内存分配,仅负责对象初始化。
能,友元函数可直接访问类的私有成员,但须在类内显式声明为friend;它非类成员、无this指针,不继承、不破坏封装,声明与定义需严格匹配。
reinterpret_cast是位模式强转,原封不动重解释内存二进制表示,不进行类型检查或转换逻辑;static_cast是编译器认可的安全转换,按类型语义执行静态可验证的转换。
std::back_inserter是包装push_back()的迭代器适配器,不存储数据,需配合可增长容器使用,依赖目标容器已存在且非常量,仅支持单向写入。