Wie löse ich Speicher aus std :: deque?

Ich benutze einestd::deque eine ziemlich große Anzahl von Objekten zu speichern. Wenn ich einige dieser Objekte entferne, scheint es mir, dass die Speichernutzung nicht abnimmt, ähnlich wie bei std :: vector.

Gibt es eine Möglichkeit, es zu reduzieren? Ich weiß, dass Sie in einem Vektor den 'Swap-Trick' verwenden müssen, von dem ich annehme, dass er auch hier funktioniert, aber ich würde das lieber vermeiden, da alle im Container verbleibenden Elemente kopiert werden müssten (und dies erfordert, dass Sie ihn haben) genügend Speicher, um jedes Objekt zweimal zu speichern). Ich bin mit der Implementierung von Deque nicht sehr vertraut, aber ich verstehe, dass es möglich sein könnte, so etwas ohne viele Kopien zu erreichen (während dies mit einem Vektor eindeutig nicht der Fall ist).

Ich verwende die VC ++ (Dinkumware) STL, wenn das einen Unterschied macht.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage