增长方式
为了支持快速随机访问 , vector 将元素连续存储一一每个元素紧挨着前一个元素存
储 。
问题
假定容器中元素是连续存储 的, 且容器的大小是可变的 , 考虑 向 vector 或 string中添加元素会发生什么 :
如果没有空间容纳新元素,容器不可能简单地将它添加到内存中其他位置一一因为元素必须连续存储。
容器必须分配新的内存空间来保存己有元素和新元素 , 将已有元素从 旧位置移动到新空 间中, 然后添加新元素,释放旧存储空间 。
如果我们每添加一个新元素, vector 就执行一次这样的内存分配和释放操作 ,性能会慢到不可接受 。
. . .