内容简介:问:“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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 无根容器浅析
- 浅析 Spring 的IOC容器
- 浅析 Docker 容器安全管控方法
- 浅析Docker容器安全管控方法
- 浅析Spring Framework框架容器启动过程
- 浅析依赖倒转、控制反转、IoC 容器、依赖注入。
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
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》 这本书的介绍吧!