繰り返し処理する一連のオブジェクトがありますが、繰り返し処理中に、これらのオブジェクトの 1 つ (または複数) を削除する必要があると判断する場合があります。
私のコードは次のようになります。
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();
}
}
}
しかしもちろん、オブジェクトを消去すると、「Map / set iterator not incrementable」というエラーが表示されます。誰かがこれを行うためのより良い方法を提案できますか?