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
廣告