1.如下代码报错 list iterator not incrementable:
for (list<Pair>::iterator it = pair_list.begin(); it != pair_list.end();it++)
{
Pair p = *it;
if ((p.v1 == pv && p.v2 == v2) || (p.v1 == v2 && p.v2 == pv))
{
pair_list.erase(itt);
}
}
解决方案:
for (list<Pair>::iterator it = pair_list.begin(); it != pair_list.end();)
{
Pair p = *it;
if ((p.v1 == pv && p.v2 == v2) ||
(p.v1 == v2 && p.v2 == pv))
{
pair_list.erase(it);
}
else
++it;
}
2.以上代码又报错rators incompatible:
解决方案:
将
pair_list.erase(it);
改为
it = pair_list.erase(it);