C++中vector容器大小增长规律浅析

栏目: C++ · 发布时间: 6年前

内容简介:问:“vector大小是如何增长的?”答:“自动增长的”问:“增长规律是?”

问:“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()操作(提前分配一定量的内存)来避免不必要的重新分配是很有必要的。

Linux公社的RSS地址: https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址: https://www.linuxidc.com/Linux/2018-09/154154.htm


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Thinking Recursively

Thinking Recursively

Eric S. Roberts / Wiley / 1986-1-17 / USD 85.67

The process of solving large problems by breaking them down into smaller, more simple problems that have identical forms. Thinking Recursively: A small text to solve large problems. Concentrating on t......一起来看看 《Thinking Recursively》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

在线进制转换器
在线进制转换器

各进制数互转换器

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具