stl 内部的内存管理疑问
我有一个类A,这个类实现了一些功能 ,这个类里面有成员变量 函数 和 list vector 等容器
现在我用一个map 来管理这个类 map<int,ClassA *> stl_Map;
每次添加一个元素都要为ClassA 申请空间 ClassA *pClass = new ClassA
delete []stl_Iterator.second 然后释放其元素的的时候报错
我又写了个测试
typedef struct
{
DWORD dwIOType;
}IOEVENT,*IOEVENT;
class CSADADADADA
{
public:
int a;
protected:
list<IOEVENT> stl_ListIOEvent;
private:
int b;
int c;
int d;
int e;
int f;
int g;
};
int main()
{
map<int,CSADADADADA *> stl_Map;
CSADADADADA *pst = new CSADADADADA;
pst->a = 111;
stl_Map.insert(make_pair(0,pst));
map<int,CSADADADADA *>::iterator stl_iter = stl_Map.find(0);
//delete []stl_iter->second; 这样写就报错
delete stl_iter->second; //这样写就没问题,为什么? 有啥区别?
stl_iter->second = NULL;
stl_Map.erase(stl_iter);
return 1;
}