c++map报错 map/set iterators incompatible

来源:赵克立博客 分类: C/C++ 标签:map发布时间:2018-04-03 15:58:40最后更新:2018-04-03 16:48:36浏览:2984
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
更新时间:
2018-04-03 16:48:36
温馨提示:
学无止境,技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章

image.png

代码如下循环的时候是直接调用函数的返回值 

map<tstring, JsBindCallBack>::iterator ite = CCefWebKitUI::GetBindJsFuncMap().begin();
while (ite != CCefWebKitUI::GetBindJsFuncMap().end())
{
    //.......处理一些事情
    ite++;
}

出错代码下面的地方如下:


image.png

因为懒,所以直接调用啦两次函数来遍历,却忽略啦每次调用函数的时候返回的是两个内容相同的副本,但是他们的迭代器类型是不一样的,所以就报错啦

改成如下就可以啦

map<tstring, JsBindCallBack> tmap = CCefWebKitUI::GetBindJsFuncMap();
map<tstring, JsBindCallBack>::iterator ite = tmap.begin();
while (ite != tmap.end())
{
    //...
    ite++;
}



微信号:kelicom QQ群:215861553 紧急求助须知
Win32/PHP/JS/Android/Python