您的位置:首页 > 编程语言 > C语言/C++

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

2017-07-17 16:20 369 查看
问:“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;
}
}


icapacity
00
11
22
34
44
58
68
78
88
916
可以看出,当分配的空间不够的时候,容器的空间将以指数倍数增加。

当空间不够用时,它会进行以下操作:

1、寻找更大空间

2、将原数据复制过去

3、释放原空间

这些操作会影响到程序运行的效率,所以reserve()操作(提前分配一定量的内存)来避免不必要的重新分配是很有必要的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  存储 c++ 容器 vector stl