Почему память моей программы не освобождается?
#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
, Я обнаружил, что память моей программы была около 61M, почему? И это нормально, если в конструкторе копирования естьNode
.Я хотел бы знать почему, а не как это исправить.
gcc (GCC) 4.9.1, сентос