火龙信奥
  • 首页
  • 课程
  • 题库
  • 打卡
    • 代码对战
    • 快速对战
  • 题单
  • 团队
  • 荣誉墙
  • 商城
  • 登录 / 注册

vector的容量(capacity)和大小(size)的区别

作者: 作者的头像   huolong , 时间:2023-10-21 11:31:05 , 所有人可见, 阅读  5

1.概念

容器的capacity:当前分配的存储容量,其实也就是当前情况下能够存储的元素个数 容器的size:表示容器中所包含(已经存储)元素的个数; 我们可以通过该模板类提供的成员函数,capacity()来获得当前容器的容量,以及size()来获得当前容器的大小

2.capacity 和size的关系

在不分配空间的前提下,vectoe.size()<=vector.capacity(),一旦元素个数超过了当点分配空间容许的元素个数,容器就会扩容。

3.验证

#include<iostream>
#include<vector>

using namespace std;
void Print(vector<int> &v)
{
    cout<< "v=";
    for (int i = 0;i < v.size();i++)
        cout << v[i];
    cout << endl;
}
int main()
{
    vector<int> value{ 5,4,3,2,1 };
    Print(value);
    cout << "value的容量是:" << value.capacity() << endl;
    cout << "value的大小是:" << value.size() << endl;
        value.push_back(6);//向vector中添加1个整数
    cout << "向vector中添加1个整数6" << endl;
    Print(value);
    cout << "value的容量是:" << value.capacity() << endl;
    cout << "value的大小是:" << value.size() << endl;//vector实际包含元素增加1
    value.push_back(60);//向vector中添加1个整数
    return 0;
}

输出结果:

v=54321
value的容量是:5
value的大小是:5
向vector中添加1个整数6
v=543216
value的容量是:7
value的大小是:6
请按任意键继续. . .

通过一个简单的例子更直观的理解向量的容量和大小的关系,初始化的向量容量和大小均为5,通过在向量末端增加一个元素6,导致向量扩容(具体扩容的大小并不一定,此处明显是扩容了2个元素空间),若继续添加元素,向量的大小增加,但是容量暂时保持不变

—— 本文来自火龙信奥(义乌睿码科技):义乌青少年信息学奥赛与编程教育平台,专注 CSP-J/S、NOIP、GESP 竞赛培训,线上线下融合教学,助力编程升学。网址:hlcoding.com

©2026加盟我们 | 关于我们 | ACM课程 | 常见问题 | 成果墙 | 评测记录 | 浙ICP备2021013995号
在线画图 | OI WIki | 打字练习
火龙信奥
请输入登录信息


请完成安全验证
验证码底图 滑块
向右拖动滑块完成验证
请输入用户名 / 绑定的手机号码



请输入注册信息(手机号验证码注册)





验证码5分钟有效,60秒内不可重复获取,每日最多3次

微信登录

微信登录二维码

正在生成二维码...

账号已过期,请续期。
去续期

绑定手机号

📱

为了更好地保护您的账号安全,享受完整的平台服务

请您尽快绑定手机号码