c++报错:list iterators incompatible

如题,编译可以通过,运行中报错。

通过单步可以找到报错的地方在一个普通的list遍历的循环里,用法肯定是没有问题,经过百度,发现原因如下:

我原本的做法是:

1,声明一个List以及他的iterator

std::list<MyType*> myList;
std::list<MyType*>::iterator myIt;

2,在代码中将新的list直接赋值给myList

void SetList(std::list<MyType*> newList)
{
    myList = newList;
}

3,遍历myList

for(myIt=myList.begin;myIt!=myList.end;myIt++)
{
    //to do...
}
注意,以上是错误的做法,原因是myIt是myList的迭代器,而myList被赋新值之后变成了别的list的副本,所以myIt和被赋值后的myList的迭代器自然也是incompatable(无法比较)的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值