Vector 一个线性顺序结构的容器。相当于数组,但是其大小可以不预先指定,并且自动扩展,它可以像数组一样操作,但是由于它的特性我们可以将他看做动态数组,
在创建一个VECTOR 变量后他会自动在内存中分配一块连续的内存空间进行数据存储,初始大小可以预先指定也可以由vector默认指定,这个大小就是capacity()函数的返回值。当存储的数据超过分配的空间是vector会重新分配内存,然后将以前的内容复制到新的空间中,所以重新分配空间比较费时,效率也很低。它的具体步骤如下:
首先,vector 会申请一块更大的内存块;
然后,将原来的数据拷贝到新的内存块中;
其次,销毁掉原内存块中的对象(调用对象的析构函数);
最后,将原来的内存空间释放掉。
如果vector 保存的数据量很大时,这样的操作一定会导致糟糕的性能(这也是vector 被设计成比较容易拷贝的值类型的原因)。所以说vector 不是在什么情况下性能都好,只有在预先知道它大小的情况下vector 的性能才是最优的。
vector 的特点:
(1) 指定一块如同数组一样的连续存储,但空间可以动态扩展。即它可以像数组一样操作,并且可以进行动态操作。通常体现在push_back() pop_back() 。
(2) 随机访问方便&#x