我目前正在编写一个程序,该程序在所述程序中的某个点使用列表我想遍历 3 个三个列表 a、b 和 c,并删除 b 和 c 中的任何元素(如果它出现在 a 中)。我这样做:
//remove elements from OpenList that are in ClosedList
for(list<Node> :: iterator cloIt = ClosedList.begin(); cloIt != ClosedList.end(); cloIt++)
{
for(list<Node> :: iterator opIt = OpenList.begin(); opIt != OpenList.end(); opIt++)
{
for(list<Node> :: iterator neigIt = Neighbour.begin(); neigIt != Neighbour.end(); neigIt++)
{
if (*cloIt == *opIt)
{
opIt = OpenList.erase(opIt);
}
if (*cloIt == *neigIt)
{
neigIt = Neighbour.erase(neigIt);
}
}
}
}
然而,这导致我得到一个“列表迭代器不可增加”错误我该如何解决这个问题?