リストの最後の要素を削除するのに問題があります。何らかの理由で最後から 2 番目の要素を削除します。このサイトには、その方法に関する非常に役立つ投稿があり、ここまでたどり着きましたが、まだ問題があります。これがどのように機能しないのかよくわかりませんか?
に変更iter++
した場合++iter
、最後の要素を削除すると、無効な情報にアクセスしようとするとエラーが発生します。
std::list<Recipe>::iterator iter = recipes.begin();
while(iter != recipes.end() )
{
if(iter->GetName() == buffer)
{
recipes.erase(iter++);
}
else
{
iter++;
}
}
何か助けはありますか?