std::set<自定义结构struct>::iterator erase后要不要清除

natfit 2011-12-23 10:31:13
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是写吗?)


}
...全文
150 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
natfit 2011-12-26
  • 打赏
  • 举报
回复
好的!
natfit 2011-12-23
  • 打赏
  • 举报
回复
sc只是指向另外一个new出来的类,那个类在其他地方delete,

我只是说需要我在pubData的
~pubData()
{
sc=NULL;
}

这样写吗?

因为pubData的实例不是new出来的,我觉得,sc是它自己会管理的吧?
healer_kx 2011-12-23
  • 打赏
  • 举报
回复
要看你的sc是内存是new的,还是malloc的,还是只是指向某块内存(不属于自己管理的内存)

如果要释放那块内存的话,可以在erase之前之后都行。
oyljerry 2011-12-23
  • 打赏
  • 举报
回复
不是new的就别关了,让它自己释放
Kaile 2011-12-23
  • 打赏
  • 举报
回复
迭代器不需要清除,只是一个类指针,指向是容器中的位置

16,467

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧