的底层扩容机制是 C++ 面试中的高频考点,也是理解 C++ 内存管理和性能优化的关键。 简单来说, 是一个动态数组。当向其中添加元素(例如使用 )且当前容量(Capacity)已满时,它会自动寻找一块更大的新内存,将旧数据搬移过去,然后释放旧内存。 以下是其底层扩容机制的详细剖析: 1. 扩容的触发条件与底层结构 在底层, 通常由三个指针来管理内存(以 GCC 的 为例): :指向已分配内存的起始位置。 :指向当前正在使用的元素的末尾(即最后一个元素的下一个位置)。 :指向已分配内存的末尾。 触发条件:当 (即 )时,如果继续调用 或 插入新元素,就会触发扩容机制。 2. 扩容的 4 个核心步骤 一旦触发扩容, 会执行以下标准动作: 1. 分配新内存:向操作系统申请一块更大的连续内存空间。 2. 数据搬移(Copy / Move):将旧内存中的元素复制或移动到新内存中。 3. 销毁与释放:调用旧内存中元素的析构函数,并释放旧的内存空间。 4. 更新指针:将 、、 指向新申请的内存区域,最后再将新元素插入到尾部。 ⚠️ 副作用(迭代器失效):因为内存地址发生了变化,扩容会导致之前...