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 容量和大小的区别

本文标题:C++ STL vector容量(capacity)和大小(size)的区别

本文地址:https://www.hosteonscn.com/7561.html

评论

0条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注