📅  最后修改于: 2023-12-03 14:59:47.117000             🧑  作者: Mango
在C++ STL中,vector
是一个非常常用的容器类,它能够在运行时动态地改变容器的大小,并且能够在不同的位置插入或删除元素。其中,Capacity()
函数是一个非常重要的函数,它用于返回vector
当前能够容纳的元素数量,以及在不需要重新分配内存的情况下,可以继续添加元素的数量。
Capacity()
函数的语法如下:
size_type Capacity() const noexcept;
其中,size_type
表示无符号整型,通常情况下是size_t
类型。
Capacity()
函数的返回值为当前vector
对象能够容纳的元素数量,即分配的内存空间大小。如果在向vector
中添加元素时,不需要重新分配内存,那么可以一直继续添加元素,直到size()
等于Capacity()
为止。
下面是一个vector
容器对象的使用示例:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
// 创建一个空的vector对象
vector<int> v;
// 添加一些元素,观察Capacity()函数的返回值
for (int i = 0; i < 10; i++) {
v.push_back(i);
cout << "Size: " << v.size() << ", Capacity: " << v.capacity() << endl;
}
return 0;
}
输出结果为:
Size: 1, Capacity: 1
Size: 2, Capacity: 2
Size: 3, Capacity: 4
Size: 4, Capacity: 4
Size: 5, Capacity: 8
Size: 6, Capacity: 8
Size: 7, Capacity: 8
Size: 8, Capacity: 8
Size: 9, Capacity: 16
Size: 10, Capacity: 16
在上面的例子中,我们创建了一个空的vector
容器对象v
,并通过push_back()
函数向其中添加了10个元素。每次向vector
中添加元素时,都会打印当前容器的大小和容量。可以看到,在每次容量不足时,vector
都会将容量扩大到原来的两倍,并重新分配内存空间,因此容量的变化有一定的规律。