Jak zwolnić pamięć ze std :: deque?
Używamstd::deque
do przechowywania dość dużej liczby obiektów. Jeśli usunę pęczek tych obiektów, wydaje mi się, że ich użycie pamięci nie zmniejsza się, podobnie jak std :: vector.
Czy istnieje sposób na jego zmniejszenie? Wiem, że w wektorze musisz użyć „sztuczki wymiany”, która, jak przypuszczam, działałaby również tutaj, ale wolałbym tego uniknąć, ponieważ wymagałoby to skopiowania wszystkich elementów pozostałych w kontenerze (a więc wymaga posiadania wystarczająco dużo pamięci, aby dwukrotnie przechowywać każdy obiekt). Nie jestem zbyt dobrze zaznajomiony z implementacją deque, ale rozumiem to tak, że możliwe jest osiągnięcie czegoś takiego bez wielu kopii (podczas gdy z wektorem wyraźnie nie jest).
Używam STL VC ++ (Dinkumware), jeśli to robi różnicę.