【发布时间】:2020-07-12 14:39:13
【问题描述】:
正如问题所暗示的,我对迭代器和列表有一种非常奇怪的行为。 因此,(类)问题要求一个函数从列表中删除满足条件的所有元素,当我试图涵盖我有一个所有元素都相同的列表的情况时,我发现最后一个元素仍然存在.
代码如下:
void esborra_tots(list<Estudiant>& t, int x) {
list<Estudiant>::iterator it;
list<Estudiant>::iterator itend = t.end();
for (it = t.begin(); it != t.end(); it++) {
if ((*it).consultar_DNI() == x) {
t.erase(it);
if (t.empty()) return;
else it = t.begin();
}
}
}
这怎么可能? PD:我不是在寻找解决问题的其他方法。
【问题讨论】:
标签: c++ c++11 visual-studio-code