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