【发布时间】:2021-09-26 19:50:56
【问题描述】:
有没有办法在循环遍历该列表的 for 循环中删除列表项? 示例:
std::list<int> myList;
myList.push_back(5);
myList.push_back(8);
std::list<int>::iterator i;
for (i = myList.begin(); i != myList.end(); i++)
{
if (i == 8)
// myList.remove(*i);
}
有什么办法可以用其他东西替换myList.remove(*i),因为那样会报错。
【问题讨论】:
-
i == 8 不会编译。看看 std::list::erase。
-
我以“i == 5”为例
-
因为这会报错。 -- 请发布错误。
-
有没有什么方法可以删除循环遍历该列表的 for 循环中的列表项? -- 您真正想要做什么?从列表中删除所有符合特定条件的项目?您不需要循环来执行此操作。
-
i是迭代器,例如指针,所以我想取消引用以比较值if (*i == 8)...