加入收藏 | 设为首页 | 会员中心 | 我要投稿 常州站长网 (https://www.0519zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

C++中vector容器大小增长规律畅聊

发布时间:2021-11-12 15:50:53 所属栏目:教程 来源:互联网
导读:问:vector大小是如何增长的? 答:自动增长的 问:增长规律是? 答: 。。。。。。 那么, 今天就来探究一下vector容器的大小增长规律: vector中得到大小的的函数有以下几个 方法 作用 size() 返回容器的大小 empty() 判断容器是否为空 max_size() 返回容

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

(编辑:常州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读