public member function
<string>

std::string::capacity

size_t capacity() const;
size_t capacity() const noexcept;
返回已分配儲存空間的大小
返回當前為string分配的儲存空間的大小,以位元組表示。

容量不一定等於string的長度。它可以等於或大於,額外的空間允許物件在向string新增新字元時最佳化其操作。

請注意,此容量並不意味著限制string的長度。當此容量耗盡並且需要更多時,它會自動被物件擴充套件(重新分配其儲存空間)。 string長度的理論限制由成員max_size給出。

string容量可以在物件被修改時隨時更改,即使此修改意味著尺寸縮小或容量尚未耗盡(這與vector 容器容量的保證形成對比)。

string容量可以透過呼叫成員reserve來顯式更改。

引數



返回值

當前為string分配的儲存容量的大小。

size_t 是一個無符號整數型別(與成員型別 string::size_type 相同)。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
// comparing size, length, capacity and max_size
#include <iostream>
#include <string>

int main ()
{
  std::string str ("Test string");
  std::cout << "size: " << str.size() << "\n";
  std::cout << "length: " << str.length() << "\n";
  std::cout << "capacity: " << str.capacity() << "\n";
  std::cout << "max_size: " << str.max_size() << "\n";
  return 0;
}

此程式的一個可能輸出是
size: 11
length: 11
capacity: 15
max_size: 429496729


複雜度

未指定,但通常是恆定的。

迭代器有效性

沒有變化。

資料競爭

該物件被訪問。

異常安全

無異常保證:此成員函式從不丟擲異常。

另見