一个关于STL容器删除的问题。
基本思想是建立了一个命令队列,当发现队列里有COM_CANCEL命令时,就删除前面的所有命令。
问题是: 如论如何都删除不了想删除的东西。
代码如下:
typedef std::list<CCommand_Object> CommandContainer;
for(CommandContainer::iterator it=m_Commands.begin();it!=m_Commands.end();++it)
{
if(it->m_Name==COM_CANCEL)
{
it = m_Commands.erase(m_Commands.begin(),it);
return;
}
}
恳请各位帮忙,感激不尽。