allocator 生命周期观察器
allocate → construct → destroy → deallocate,顺序不能跳跃。
存储:未分配size:0capacity:0
异常模拟会先取得新存储;第 N 个对象构造失败后,只逆序销毁前 N−1 个已完成构造的对象,然后归还整块存储。
C++ object lifetime lab
安全地演练 allocator 的四个阶段,并用 vector 对照 size 与 capacity。这里不会执行未定义行为:不合法的动作会被拒绝,并在日志中解释原因。
allocate → construct → destroy → deallocate,顺序不能跳跃。
异常模拟会先取得新存储;第 N 个对象构造失败后,只逆序销毁前 N−1 个已完成构造的对象,然后归还整块存储。
reserve 只准备空间,push 才创建元素,clear 销毁元素但通常保留容量。
当前没有已构造元素。