关于vector的操作问题,出现Expression: vector iterator not increme

C++语言 码拜 8年前 (2016-04-02) 1010次浏览
关于vector的操作问题,出现Expression: vector iterator not increme
这个问题已经折腾了本人两天了,起初本人还以为只是本人这个代码模块实现有槽点,代码修了又改改了又修,至今本人已经两眼发青意识浑浊……
最初本人想实现的逻辑大致是这样的:
bool CCAllDate::ChangeTheList(CString str)
{
vector<GOODSDATE>::iterator iter = MyGoodsList.begin();
while (iter != MyGoodsList.end())
{
if (str == iter->szNumber)
{
iter = MyGoodsList.erase(iter);    //最初想要实现的思路
return true;
}
else
++iter;
}
}
以上是本人以MFC某个按键事件中大致想实现的功能,就是删除程序中MyGoodsList的指定一条商品信息。
解决方案

80

建议题主多贴点代码。
这样erase应该是没问题的。
是不是别的地方导致的,例如调用了ChangeTheList这个函数的地方,在调用之前使用了迭代器,调用之后没有重新获取迭代器而是继续使用了。
建议题主单步一下,看看是这个函数导致的(是的话定位到具体的代码上,看看是哪行),还是别的地方导致的

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于vector的操作问题,出现Expression: vector iterator not increme
喜欢 (0)
[1034331897@qq.com]
分享 (0)