它给出错误作为列表迭代器不可降低
在此处输入图像说明下面代码会导致编译错误,如std :: list list
的迭代器无法降低:
std::list<CItem*>::iterator iter1, iter2;
std::list<CItem*> listc, list3;
std::vector<CItem*>::iterator iter;
for(iter1 = listc.begin(); iter1 != listc.end(); iter1++)
{
for(iter2 = list3.begin(); iter2 != list3.end(); iter2++)
{
if((*iter1)->getID() == (*iter2)->getID())
{
iter1 = listc.erase(iter1);
iter1--; //this line gives error as list iterator not decrementable
list3.erase(iter2);
break;
}
}
}
enter image description hereBelow code results in a compilation error, as std::list
's iterator is not decrementable:
std::list<CItem*>::iterator iter1, iter2;
std::list<CItem*> listc, list3;
std::vector<CItem*>::iterator iter;
for(iter1 = listc.begin(); iter1 != listc.end(); iter1++)
{
for(iter2 = list3.begin(); iter2 != list3.end(); iter2++)
{
if((*iter1)->getID() == (*iter2)->getID())
{
iter1 = listc.erase(iter1);
iter1--; //this line gives error as list iterator not decrementable
list3.erase(iter2);
break;
}
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论