C での std::vector の容量の縮小
C でベクトルを扱う場合、多くの場合、未知の数値を挿入する必要があります。実行時の値。ただし、これらの値が挿入されると、ベクターは過剰な容量を保持する可能性があります。この容量を削減すると、メモリ効率とパフォーマンスが向上します。
ベクトルの容量を削減するために、C 11 では shrin_to_fit() メンバー関数が導入されています。ドラフト標準セクション 23.2.6.2 で説明されているように、このメソッドは次のとおりです。
is a non-binding request to reduce capacity() to size(). <em>[Note: The request is non-binding to allow latitude for implementation-specific optimizations. —end note]</em>
したがって、現在のサイズに合わせてベクトルの容量を削減するための非拘束リクエストをコンパイラに行う方法を提供します。未使用のメモリを解放し、効率を向上させます。
ベクトルのサイズを手動で変更することで余分なコピー操作を回避できますが、shrink_to_fit() は次のことを行います。よりエレガントで効率的なソリューションです。このメソッドは C 11 実装以外では移植できないことに注意してください。ただし、移植性の欠如は、C 11 機能をサポートする GCC を使用するユーザーにとっては問題ではありません。
以上がC std::vector の容量を減らすにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。