ベクターの容量を、現在のサイズに小さくします。

ベクターコンテナのメンバー関数であるvector::shrink_to_fit()は、ベクターコンテナに現在のサイズに合わせて容量を縮小させるよう要求するために使用します。

shrink_to_fit()メソッドは、ベクトルの容量をそのサイズと同じまで縮小することでメモリ空間を節約します。これにより、使用されていないメモリ空間が解放され、現在のサイズの要素のみがメモリを占有します。

vector が現在の容量を必要としなくなったときに余分なメモリを手動で解放するには、shrink_to_fit() 関数を使用します。これは、メモリ占有量を削減するために vector で多くの操作を実行した後、メモリを解放する必要があるときに非常に役立ちます。

shrink_to_fit()関数のサンプルの使い方は次のとおりです。

#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
std::cout << "Size before shrink: " << vec.size() << std::endl;  // 输出:Size before shrink: 5
std::cout << "Capacity before shrink: " << vec.capacity() << std::endl;  // 输出:Capacity before shrink: 5
vec.shrink_to_fit();
std::cout << "Size after shrink: " << vec.size() << std::endl;  // 输出:Size after shrink: 5
std::cout << "Capacity after shrink: " << vec.capacity() << std::endl;  // 输出:Capacity after shrink: 5
return 0;
}

上の例では、最初に5つの要素を持つベクトルを作成します。次に、その容量をサイズに等しく縮小するために shrink_to_fit() 関数を使用します。関数の呼び出しの前後に、size() 関数と capacity() 関数はそれぞれベクトルのサイズと容量を出力します。shrink_to_fit() 関数が呼び出されたが、容量は変更されていないことが見られます。これはベクトルのサイズは依然として容量に等しいからです。

shrink_to_fit()関数は要求関数であり、可能な限り容量を縮小しようとしますが、必ずサイズと等しくなるわけではありません。これは、実装の策略や実装詳細によって決まります。

bannerAds