重複の可能性:
std::vector を縮小するには?
cppreference によると、std::vector::reserve(size_t n) では、n は「割り当てられたストレージの容量として必要な最小量」です。私の質問は次のとおりです。最大値のみを知っている再割り当てを回避する方法は?
例として、整数のリストがあるとしますが、このリストのサイズはわかりません (たとえば、このリストはファイルの読み取りから取得されます)。しかし、このリストの最大サイズが 1000 であることはわかっています。リストの実際のサイズが 800 であるとしましょう。
現在、std::reserve(1000) を使用してから、push_back() のループを使用しています。予約を使用して、再割り当てを防ぎます。しかし、 push_backs の最後にある余分なスペースを解放するにはどうすればよいでしょうか? (例の場合、1000-800=200 の余分なスペースを解放する方法は?)
どうもありがとうございました。