- vector内存增长
1、vector使用3个指针(start, finish, end_of_storage)分别存放向量的起始字节位置、当前最后一个向量元素的末尾字节和整个容器所占用空间的末尾字节;
2、每当内存不足时,capacity()大小变为原来的1.5倍或2倍;
3、4个与vector内存分配相关的函数:
size()返回已用空间的大小;
capacity()返回总空间大小;
reserve(n)表示指预先分配一块大小为n的内存空间;
resize()只改变元素个数,不改变总容量大小;
4、若未调用reserve(n)分配内存,那么vector的自动增长由编译器完成。自动增长过程包括重新分配内存空间、原空间内容拷贝、释放原内存空间三个部分。vector的空间动态增加大小,并不是在原空间之后的相邻地址增加新空间,因为vector的空间是线性连续分配的,不能保证原空间之后有可供配置的空间。