c++ vector的size与capacity函数的区别。

本文详细探讨了C++中vector的size和capacity的区别,size表示元素数量,capacity则指分配的存储空间。vector在容量不足时会自动增长,增长策略在不同STL版本中有所差异。在Visual Studio环境下,增长量为原容量的50%;而在Ubuntu18.04 g++环境中,增长策略更接近几何增长。作者通过源码分析揭示了这一过程,并诚恳欢迎读者指正。
摘要由CSDN通过智能技术生成

一、vector的基本知识

初始化等一些基本操作请看这篇博客
为了区分size与capacity,以及capacity的增长规律。我去看了c++ vector官网,以及c++的源码。大家也可以移至官网自行查看,养成查手册的好习惯,以下是我摘抄的重点,以及结合源码进行的分析。

二、size

这是上述网页中的描述,返回vector的元素数目,还特地提到,不等于存储容量。
在这里插入图片描述
这是官网中给出的例子。

// vector::size
#include <iostream>
#include <vector>

int main ()
{
  std::vector<int> myints;
  std::cout << "0. size: " << myints.size() << '\n';

  for (int i=0; i<10; i++) myints.push_back(i);
  std::cout << "1. size: " << myints.size() << '\n';

  myints.insert (myints.end(),10,100);
  std::cout << "2. size: " << myints.size() << '\n';

  myints.pop_back();
  std::cout << "3. size: " << myints.size() << '\n';

  return 0;
}

输出,这个没有疑问,就是有多少元素。

0. size: 0
1. size: 10
2. size: 20
3. size: 19

三、capacity

这是官网给出的介绍,返回分配的存储容量规模,大于或等于size,这样分配是为了防止每次有新数据push进来的重新分配。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值