Warum wird der Speicher meines Programms nicht freigegeben?

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

Durchtop, Ich habe festgestellt, dass der Speicher meines Programms ungefähr 61 Millionen beträgt. Warum? Und es ist in Ordnung, wenn es in @ einen Kopierkonstruktor giNode .Ich würde gerne wissen warum, nicht wie ich es richtig machen soll.

gcc (GCC) 4.9.1, centos

Antworten auf die Frage(4)

Ihre Antwort auf die Frage