stl +内存管理问题

Ole*_*leg 0 c++ memory memory-management stl

例如,我有下一个代码:

#include <set>
using namespace std;

struct SomeStruct 
{
    int a;
};

int main ()
{
    set<SomeStruct *> *some_cont = new set<SomeStruct *>;
    set<SomeStruct *>::iterator it;
    SomeStruct *tmp;

    for (int i = 0 ; i < 1000; i ++)
    {
        tmp = new SomeStruct;
        tmp->a = i;
        some_cont->insert(tmp);
    }

    for (it = some_cont->begin(); it != some_cont->end(); it ++)
    {
        delete (*it);
    }

    some_cont->clear(); // <<<<THIS LINE
    delete some_cont;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在删除some_cont以避免内存泄漏或自动调用析构函数之前,是否需要调用"THIS LINE"?

Kir*_*rov 5

你不需要调用它,析构函数肯定会被调用.