std::listの要素のdeleteについて
Posted: 2013年7月28日(日) 01:00
2連チャンで投稿します、
std::listで管理しているオブジェクト要素を、メンバ変数bool Existによって削除したいのですが、メモリ違反が置きます。
他がポインタを持っている状態でdeleteしても大丈夫だと思うのですが、実行時エラーが置きます。
参考にしたサイトです
http://marupeke296.com/TIPS_No12_ListElementErase.html
std::listで管理しているオブジェクト要素を、メンバ変数bool Existによって削除したいのですが、メモリ違反が置きます。
他がポインタを持っている状態でdeleteしても大丈夫だと思うのですが、実行時エラーが置きます。
void CTransientObjectList::LifeCheck(){
auto it = List.begin();
while(it != List.end()){ //Listの線形探索
if(!(*it)->GetExist()){ //ExistがfalseならばdeleteしてListからも削除
delete ⁢ //delete
it = List.erase(it); //リストから外したらそのイテレータを受け取る
continue;
}
it++;
}
}
http://marupeke296.com/TIPS_No12_ListElementErase.html