安全なSTL listの要素削除ループ
Posted on Sun 15 November 2009 in C++
erase(itr)を呼び出すとitrは使えなくなるので、
erase()の返り値で次の要素のイテレータを受け取りループを続行する。
list<int>::iterator itr = SampleList.begin();
for (; itr != SampleList.end(); ) {
if( 条件 ) {
itr = SampleList.erase( itr );
continue;
}
it++;
}