名前空間
変種
操作

std::vector::shrink_to_fit

提供: cppreference.com
< cpp‎ | container‎ | vector
void shrink_to_fit();
(C++11およびそれ以降)

未使用の容量の削除を要求します。

これは、capacity()size() に減らす、拘束力のない要求です。 要求が満たされるかどうかは実装に依存します。

再確保が発生した場合は、すべてのイテレータ (終端イテレータも含む) および要素へのすべての参照が無効化されます。 再確保が発生しなければ、どのイテレータも参照も無効化されません。

目次

[編集] 引数

(なし)

型の要件
-
TMoveInsertable の要件を満たさなければなりません。

[編集] 戻り値

(なし)

[編集] 計算量

多くともコンテナのサイズに比例。

[編集] ノート

T のムーブコンストラクタ以外によって例外が投げられた場合、効果はありません。

[編集]

#include <iostream>
#include <vector>
 
int main()
{
    std::vector<int> v;
    std::cout << "Default-constructed capacity is " << v.capacity() << '\n';
    v.resize(100);
    std::cout << "Capacity of a 100-element vector is " << v.capacity() << '\n';
    v.clear();
    std::cout << "Capacity after clear() is " << v.capacity() << '\n';
    v.shrink_to_fit();
    std::cout << "Capacity after shrink_to_fit() is " << v.capacity() << '\n';
}

出力例:

Default-constructed capacity is 0
Capacity of a 100-element vector is 100
Capacity after clear() is 100
Capacity after shrink_to_fit() is 0

[編集] 関連項目

要素数を返します
(パブリックメンバ関数) [edit]
現在確保されている記憶域に保持できる要素の数を返します
(パブリックメンバ関数) [edit]