3

入力サイズに基づいてメモリが制限されるプログラムを書いています。入力サイズが 1000 だとすると、それらをサイズ 1000 のベクターに格納します。後でこのベクターのデータを処理するとき、要素の処理が完了するたびに、それを 2 番目のベクターにプッシュし、vector.erase を使用して元のベクトルから削除します。したがって、これらの 2 つのベクトルには合計で常に 1000 個の要素が格納されるため、常に 1000 サイズのメモリを使用していると思いました。

しかし、私は間違っていeraseます。要素が削除されたときにベクトルのサイズが縮小されないため、2000 メモリを使用したことがわかりました...それは同じだと思いspliceますか?

プログラムが 1000 メモリしか使用しないようにする方法はありますか? 属性を追加して、要素が処理されたかどうかをマークすることで解決できますが、それは最善の方法ではないと感じています。ありがとう!

4

2 に答える 2