Почему память моей программы не освобождается?

#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;
}

Отtop&nbsp;, Я обнаружил, что память моей программы была около 61M, почему? И это нормально, если в конструкторе копирования естьNode.Я хотел бы знать почему, а не как это исправить.

gcc (GCC) 4.9.1, сентос