我在删除列表的最后一个元素时遇到问题。由于某种原因,它删除了倒数第二个元素。这个网站上有一篇关于如何做的非常有用的帖子,它让我走到了这一步,但我仍然遇到问题。我只是不太明白这怎么行不通?
如果更改iter++
为++iter
,则在删除最后一个元素时尝试访问无效信息时会出错。
std::list<Recipe>::iterator iter = recipes.begin();
while(iter != recipes.end() )
{
if(iter->GetName() == buffer)
{
recipes.erase(iter++);
}
else
{
iter++;
}
}
有什么帮助吗?