Копирование ответа от MSalters на Как освободить память из std :: deque? (спасибо Emile Cormier за ссылку).
"std :: deque вернет память своему распределителю. Часто этот распределитель не возвращает память ОС. В таких случаях создается впечатление, что память не" освобождена ". Хорошие детекторы утечки памяти будут удовлетворены как только память вернется к распределителю, и поймите, что не вся память освобождается free (). "
Таким образом, даже когда он освобождает память, он не освобождает память. Это легко расценить как необоснованное поведение, если только все распределение в программе не выполняется STL; скорее самовлюбленный из библиотеки. Поэтому рассмотрите возможность переопределения распределителей для любых структур данных, интенсивно использующих память, для улучшения контроля. Другие также обнаружили, что системы распределения STL не хватает - см. Проект EASTL от Electronic Arts.