📜  C++ STL中的vector Capacity()函数(1)

📅  最后修改于: 2023-12-03 14:59:47.117000             🧑  作者: Mango

C++ STL中的vector Capacity()函数

在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都会将容量扩大到原来的两倍,并重新分配内存空间,因此容量的变化有一定的规律。