手机版
你好,游客 登录 注册 搜索
背景:
阅读新闻

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

[日期:2018-09-17] 来源:Linux社区  作者:Linux [字体: ]

问:“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
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

linux
相关资讯       vector容器大小增长  vector容器 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款