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

1.概念

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

2.capacity 和size的关系

在不分配空间的前提下,vectoe.size()<=vector.capacity(),一旦元素个数超过了当点分配空间容许的元素个数,容器就会扩容。
vector的容量(capacity)和大小(size)的区别_第1张图片

vector的容量(capacity)和大小(size)的区别_第2张图片

3.验证

#include
#include

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个元素空间),若继续添加元素,向量的大小增加,但是容量暂时保持不变

你可能感兴趣的:(vector的容量(capacity)和大小(size)的区别)