这样的链表如何删除元素

悟迟 2009-04-30 05:49:39

class CData
{
public:
CData() {m_nData = rand();};
~CData() {};
int m_nDelete;
int m_nData;
};
typedef list<CData*> lCData;
typedef list<CData*>::iterator liCData;
typedef list<CData*>::const_iterator lciCData;
lCData g_data;
int _tmain(int argc, _TCHAR* argv[])
{
int i = 0;
CData* pNewClass = NULL;
liCData pData;
for (i=0; i<10; i++)
{
pNewClass = new CData();
pNewClass->m_nDelete = i % 2;
g_data.push_back(pNewClass);
}

// 请问,如何删除m_nDelete = 0的元素?
}
...全文
89 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
maosher 2009-04-30
  • 打赏
  • 举报
回复
for (liCData iter = g_data.begin(); iter != g_data.end(); ++iter)
{
if (0 == (*iter)->m_nData)
{
g_data.erase(iter);
}
}
yayafu 2009-04-30
  • 打赏
  • 举报
回复
循环叠代链表元素,判断m_Delete==0就g_data.erase(it),然后delete *it
  • 打赏
  • 举报
回复
访问CData::m_nDelete 数据,为0,则删除之。并delete掉。
liliangbao 2009-04-30
  • 打赏
  • 举报
回复
帮顶~

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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