最終更新日時:
が更新

履歴 編集

function
<string>

std::basic_string::shrink_to_fit(C++11)

void shrink_to_fit();

概要

領域をコンテナのサイズまで切り詰める

戻り値

なし

備考

capacity()size()に縮小させるリクエストを行う。

実装依存の最適化を許可するために、縮小するという動作は仕様上強制されない。

#include <iostream>
#include <string>
#include <cassert>

int main()
{
  std::wstring s = L"The quick brown fox jumps over the lazy dog";

  std::cout << s.capacity() << std::endl;

  // 要素削除 : capacityは減らない
  s.erase(s.begin() + 8, s.end());
  std::cout << s.capacity() << std::endl;

  // 領域を切り詰める
  s.shrink_to_fit();
  std::cout << s.capacity() << std::endl;
}

出力例

47
47
15

実装例

void basic_string::shrink_to_fit() {
  swap(basic_string(*this));
}

バージョン

言語

  • C++11

処理系

参照