std::vector の容量の削減
ベクトルを扱う場合、容量が上限に達した後に削減すると役立つことがよくあります。安定したサイズ感。これにより、メモリが解放され、後続の読み取り操作のパフォーマンスが向上します。
問題ステートメント:
不必要なコピー操作を除外して、ベクターの容量を削減する方法はありますか?そしてポータブルではない解決策?
解決策:
はい、C 11 では、shrink_to_fit() メンバー関数を利用できます:
std::vector<int> myVector; myVector.shrink_to_fit();
The shrin_to_fit( ) 関数は、現在のサイズに合わせてベクトルの容量を削減します。 C 11 ドラフト標準によると:
shrink_to_fit is a non-binding request to reduce capacity() to size().
このリクエストには、実装固有の最適化を可能にする拘束力はありません。実際には、これは、shrink_to_fit() を呼び出しても容量が削減されることが保証されないことを意味します。ただし、メモリ割り当てを削減し、読み取り操作のパフォーマンスを向上させるには便利なツールです。
以上がC で std::vector の容量を効率的に削減するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。