内容简介:问:“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 容器、依赖注入。
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
About Face 3
Alan Cooper、Robert Reimann、David Cronin / John Wiley & Sons / 2007-5-15 / GBP 28.99
* The return of the authoritative bestseller includes all new content relevant to the popularization of how About Face maintains its relevance to new Web technologies such as AJAX and mobile platforms......一起来看看 《About Face 3》 这本书的介绍吧!