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


复杂度

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

迭代器有效性

没有变化。

数据竞争

该对象被访问。

异常安全

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

另见