ベクトルの反復中に特定の要素を消去したいのですが、以下のコードでは「ベクトル反復子はインクリメントできません」というアサーション エラーが発生します。
for(auto iter=vec.begin(); iter!=vec.end(); ++iter)
{
if((*iter).isDead())
{
std::swap(*iter, vec.back());//swap with the back
vec.pop_back(); //erase the element
}
}
このコードの何が問題になっていますか?