Por que a memória do meu programa não é liberada?
#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
, Achei que a memória do meu programa era de 61 milhões, por quê? E tudo bem se houver um construtor de cópia emNode
. Gostaria de saber por que, não como fazê-lo correto.
gcc (GCC) 4.9.1, centos