C++vector容器大小增长规律的总结

来源:互联网 发布:c语言6.0下载 编辑:程序博客网 时间:2024/05/16 23:35

问:“vector大小是如何增长的?”
答:“自动增长的”
问:“增长规律是?”
答: 。。。。。。

那么, 今天就来探究一下vector容器的大小增长规律:

vector中得到大小的的函数有以下几个

方法 作用 size() 返回容器的大小 empty() 判断容器是否为空 max_size() 返回容器最大的可以存储的元素 capacity() 返回容器当前能够容纳的元素数量

测试用代码:

#include <iostream>#include <vector>using namespace std;int main(){  int N = 9;  vector<char> aa;  for(int i= 0; i < N; i++)  {    aa.push_back('f');    //输出当前容量    cout << aa.capacity() << endl;  }}
i capacity 0 0 1 1 2 2 3 4 4 4 5 8 6 8 7 8 8 8 9 16 … …

可以看出,当分配的空间不够的时候,容器的空间将以指数倍数增加。
当空间不够用时,它会进行以下操作:
1、寻找更大空间
2、将原数据复制过去
3、释放原空间

这些操作会影响到程序运行的效率,所以reserve()操作(提前分配一定量的内存)来避免不必要的重新分配是很有必要的。