C++ vector::capacity() 函数



C++ `vector::capacity()` 函数是一个内置函数,它返回向量的当前存储空间分配,以元素个数表示。此容量不一定等于向量大小。它可以等于或大于向量大小,额外的空间允许在每次插入时无需重新分配即可容纳增长。

容量并不意味着向量的尺寸受到限制。当此容量用尽后需要额外空间时,容器会自动扩展它。`max_size()` 提供了向量大小的理论限制。`capacity()` 函数的时间复杂度是常数。

语法

以下是 C++ `vector::capacity()` 函数的语法:

size_type capacity() const noexcept;

参数

它没有任何参数。

示例 1

让我们考虑以下示例,我们将使用 `capacity()` 函数并检索输出。

#include<iostream>
#include<vector>
using namespace std;

int main(){
   vector<char>tutorial{'W','O','R','L','D'};
   int x=tutorial.capacity();
   cout<<"Capacity is : "<<x;
   return 0;
}

输出

当我们编译并运行上述程序时,将产生以下结果:

Capacity is : 5

示例 2

在下面的示例中,我们将把 `capacity()` 函数应用于循环并检索输出。

#include <vector>
#include<iostream>
using namespace std;

int main(){
   vector<int> tutorial;
   int i;
   for (i = 1; i < 7; i++)
      tutorial.push_back('x');
   cout << "Elements in vector = " << tutorial.size() << endl;
   cout << "Capacity of vector = " << tutorial.capacity() << endl;
   cout<<endl;
   return 0;
}

输出

运行上述程序后,将产生以下结果:

Elements in vector = 6
Capacity of vector = 8

示例 3

以下是另一个场景,用于检查 `capacity()` 函数的用法。

#include <iostream>
#include <vector>
using namespace std;

int main(){
   vector<int> tutorial;
   for(int i = 1; i < 10; i++) {
      tutorial.push_back(1);
   }
   cout << "size : " << tutorial.size() << endl;
   cout << "max_size : " << tutorial.max_size() << endl;
   cout << "capacity : " << tutorial.capacity() << endl;
   return 0;
}

输出

运行上述程序后,将产生以下结果:

size : 9
max_size : 2305843009213693951
capacity : 16
广告
© . All rights reserved.