public member function
<string>

std::basic_string::shrink_to_fit

void shrink_to_fit();
收缩到合适大小
请求 basic_string 减小其 容量 以适应其 大小

该请求不具强制性,容器实现可以自由地进行其他优化,并使 basic_string容量 大于其 大小

此函数对字符串长度没有影响,也不能改变其内容。

参数



返回值



示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// string::shrink_to_fit
#include <iostream>
#include <string>

int main ()
{
  std::string str (100,'x');
  std::cout << "1. capacity of str: " << str.capacity() << '\n';

  str.resize(10);
  std::cout << "2. capacity of str: " << str.capacity() << '\n';

  str.shrink_to_fit();
  std::cout << "3. capacity of str: " << str.capacity() << '\n';

  return 0;
}

可能的输出
1. capacity of str: 100
2. capacity of str: 100
3. capacity of str: 10


复杂度

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

迭代器有效性

与此对象相关的任何迭代器、指针和引用都可能失效。

数据竞争

对象被修改。

异常安全

强保证: 如果抛出异常,则 basic_string 中没有任何更改。

如果该类型使用默认分配器,如果函数需要分配存储空间但失败,则会抛出bad_alloc异常。

另见