public member function
<string>

std::basic_string::capacity

size_type capacity() const;
size_type capacity() const noexcept;
返回已分配存储空间的大小
返回当前为basic_string分配的存储空间的大小,以字符数表示。

容量不一定等于字符串长度。它可以等于或大于字符串长度,额外的空间允许对象在向basic_string添加新字符时优化其操作。

请注意,此容量并不意味着限制长度basic_string。当此容量耗尽并且需要更多容量时,对象会自动扩展它(重新分配它的存储空间)。一个basic_string长度的理论极限由成员max_size给出。

basic_string容量可以在对象被修改的任何时候更改,即使这种修改意味着尺寸的减小,或者容量尚未耗尽(这与vector容器中对capacity的保证形成对比)。

basic_string容量可以通过调用成员reserve显式更改。

参数



返回值

当前为basic_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


复杂度

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

迭代器有效性

没有变化。

数据竞争

该对象被访问。

异常安全

无异常保证:此成员函数从不抛出异常。

另见