¿Por qué no se libera la memoria de mi programa?

#include <iostream>
#include <string>
#include <deque>
#include <vector>
#include <unistd.h>
using namespace std;
struct Node
{
    string str;
    vector<string> vec;
    Node(){};
    ~Node(){};
};
int main ()
{
    deque<Node> deq;
    for(int i = 0; i < 100; ++i)
    {
        Node tmp;
        tmp.vec.resize(100000);
        deq.push_back(tmp);
    }
    while(!deq.empty())
    {
        deq.pop_front();
    }
    {
        deque<Node>().swap(deq);
    }
    cout<<"releas\n";
    sleep(80000000);
    return 0;
}

Portop , Encontré que la memoria de mi programa era de unos 61 millones, ¿por qué? Y está bien si hay un constructor de copia enNodeMe gustaría saber por qué, no cómo corregirlo.

gcc (GCC) 4.9.1, centos

Respuestas a la pregunta(2)

Su respuesta a la pregunta