void shrink_to_fit();
概要
領域をコンテナのサイズまで切り詰める
要件
- C++14 : 型
T
が*this
に対してムーブ挿入可能であること
効果
- 確保した未使用のメモリ領域を
size()
に縮小させるというリクエストを行う。- 実装依存の最適化を許可するために、縮小するという動作は仕様上強制されない。
- C++17 : コンテナの要素に対する参照、ポインタ、およびイテレータとそれが指す要素への参照は無効となる。
- C++17 : コピー挿入可能でない型
T
のムーブコンストラクタによる例外を除き、例外が送出された場合この関数は何もしない。
戻り値
なし
計算量
- C++14 : 最大で、要素数に対して線形時間
バージョン
言語
- C++11
処理系
- Clang: ??
- GCC: 4.6.1 ✅
- ICC: ??
- Visual C++: 2010 ✅, 2012 ✅, 2013 ✅
関連項目
名前 | 説明 |
---|---|
size |
要素数を取得する |
参照
- 『Effective STL - STLを効果的に使いこなす50の鉄則』 第17項 余分な容量を取り除くには「swap技法」を使おう
- LWG Issue 755.
std::vector
andstd:string
lack explicit shrink-to-fit operations - LWG Issue 850. Should
shrink_to_fit
apply tostd::deque
? - LWG Issue 2033. Preconditions of
reserve
,shrink_to_fit
, andresize
functions - LWG Issue 2223.
shrink_to_fit
effect on iterator validity