私は現在、上記のプログラムのある時点でリストを使用するプログラムを作成しています.3つの3つのリストa、b、cを反復処理し、aに表示される場合はbとcの要素を削除します。私はそのようにやっています:
//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);
}
}
}
}
ただし、これにより「リスト反復子はインクリメントできません」というエラーが発生します。これを修正するにはどうすればよいですか?