【初心者歓迎】C/C++室 Ver.42【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
0239デフォルトの名無しさん
2007/09/12(水) 12:43:50{
if( m_listHoge.empty()) return;
list<Hoge*>::iterator itr = m_listHoge.begin();
while(itr != m_listHoge.end())
{
(*itr)->Update(elapsed);
if((*itr)->IsExpired() == true)
{
delete *itr;
*itr = NULL;
itr = m_listHoge.erase(itr);//消すときは次のiteratorを取って置く
}
if(m_listHoge.empty())break;
++itr;
}
}
なんかstlのlist使ったら
list iterator not inclementableとかいうエラーがでます。
以前同じような質問をしたときに
listのiteratorはeraseした後無効になるから、戻り値をとっておけといわれて
これで直ったような気がしてたんですが、やっぱエラーがでました。
listを消したりインクリメントしたりする操作はこの関数内でしか行ってません。
iteratorの使い方とか間違ってるでしょうか?
■ このスレッドは過去ログ倉庫に格納されています