struct pubData
{
COleDateTime pubtime;
int rnd;
int pubtype;
int sid;
LPVOID sc;
}std::set<pubData> setpd;setpd.insert()  //有数据添加 std::set<pubData>::iterator it=std::find(setpd,pd);  //查找到符合一个条件的if (it!=setpd.end())
{
setpd.erase(it);//这下面要不要清除it,如何清除
it=NULL不对sc要不要先清除?(sc是一个类的指针,类我会自己dispose,sc要不要我清除成null,在pubdata是写吗?)
}

解决方案 »

  1.   

    要看你的sc是内存是new的,还是malloc的,还是只是指向某块内存(不属于自己管理的内存)如果要释放那块内存的话,可以在erase之前之后都行。
      

  2.   

    sc只是指向另外一个new出来的类,那个类在其他地方delete,我只是说需要我在pubData的
    ~pubData()
    {
        sc=NULL;
    }这样写吗?因为pubData的实例不是new出来的,我觉得,sc是它自己会管理的吧?
      

  3.   

    不是new的就别关了,让它自己释放