我有一组要迭代的对象,但是我可能会在迭代期间决定现在需要删除这些对象中的一个(或多个)。
我的代码如下:
if( ! m_Container.empty() )
{
for( typedefedcontainer::iterator it = m_Container.begin();
it != m_Container.end();
++it )
{
if( ! ( SomeFunction( (*it), "test", "TEST!", false )) )
{
// If function returns false, delete object.
m_Container.erase( it );
AsyncResponseStore::iterator it = m_asyncResponses.begin();
}
}
}
但是,当然,当我擦除一个对象时,我得到一个错误:“映射/设置迭代器不可增加”。有人可以提出更好的方法吗?