image.png

使用T*作为迭代器

三个迭代器

vector的增长

push_back

如果先前分配的内存有剩余则使用,否则调用insert_aux申请新的内存

image.png

insert_aux申请新空间

image.png

  1. 计算新空间所需大小(两倍增长)
  2. 尝试分配新的空间,将旧空间内容逐个拷贝到新空间
  3. 析构并释放原空间
  4. 更新迭代器指向

vector iterator

image.png