for循环中迭代器失效问题
来源:10-4 关联容器的插入删除及迭代器失效问题
慕雪8063727
2022-12-01
for循环中,当map中只有一个键值对满足要求而不被删除时,依然会报错,请问这个问题该怎么解决?
写回答
1回答
-
quickzhao
2022-12-01
改成这样试试:
for (iter = studentSocres.begin(); iter != studentSocres.end(); )
{
if (iter->second <= 99.5)
{
iter = studentSocres.erase(iter); // 注意:迭代器失效问题
}
else
{
iter++;
}
}
for_each(studentSocres.begin(), studentSocres.end(), Display());
cout << endl;
022022-12-01
相似问题