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个元素空间),若继续添加元素,向量的大小增加,但是容量暂时保持不变
版权声明:本文为qq_43768296原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。