¿Cómo liberar memoria desde std :: deque?

Estoy usando unstd::deque para almacenar una cantidad bastante grande de objetos. Si elimino un montón de esos objetos, me parece que su uso de memoria no disminuye, de manera similar a std :: vector.

¿Hay alguna forma de reducirlo? Sé que en un vector tienes que usar el 'truco de intercambio', que supongo que también funcionaría aquí, pero preferiría evitarlo ya que requeriría copiar todos los elementos que quedan en el contenedor (y por lo tanto requiere que tengas Memoria suficiente para almacenar cada objeto dos veces). No estoy muy familiarizado con la implementación de deque, pero mi comprensión de esto es que podría ser posible lograr tal cosa sin muchas copias (mientras que con un vector claramente no lo es).

Estoy usando el STL de VC ++ (Dinkumware), si eso marca alguna diferencia.

Respuestas a la pregunta(4)

Su respuesta a la pregunta