• C++ STL vector容量(capacity)和大小(size)的区别

    很多初学者分不清楚 vector 容器的容量(capacity)和大小(size)之间的区别,甚至有人认为它们表达的是一个意思。本节将对 vector 容量和大小各自的含义做一个详细的介绍。

    vector 容器的容量(用 capacity 表示),指的是在不分配更多内存的情况下,容器可以保存的最多元素个数;而 vector 容器的大小(用 size 表示),指的是它实际所包含的元素个数。

    对于一个 vector 对象来说,通过该模板类提供的 capacity() 成员函数,可以获得当前容器的容量;通过 size() 成员函数,可以获得容器当前的大小。例如:

    #include <iostream>
    #include <vector>
    using namespace std;
    int main()
    {
        std::vector<int>value{ 2,3,5,7,11,13,17,19,23,29,31,37,41,43,47 };
        value.reserve(20);
        cout << "value 容量是:" << value.capacity() << endl;
        cout << "value 大小是:" << value.size() << endl;
        return 0;
    }

    程序输出结果为:

    value 容量是:20
    value 大小是:15

    结合该程序的输出结果,图 1 可以更好的说明 vector 容器容量和大小之间的关系。



    图 1 vector 容量和大小的区别

更多...

加载中...