c++ map 报错 map/set iterators incompatible

Demo* pD = new Demo();

    for (auto item = pD->GetMapData().begin(); item != pD->GetMapData().end(); item++)
    {
        int nnn1 = item->first;
        BigTestStruct bbb = item->second;
    }

用函数返回map时报错 map/set iterators incompatible,原因是每次调用函数的时候返回的是两个内容相同的副本,但是他们的迭代器类型是不一样的,所以就报错啦,改为下面即可:

std::map<int, BigTestStruct> we = pD->GetMapData();
    for (auto item = we.begin(); item != we.end(); item++)
    {
        int nnn1 = item->first;
        BigTestStruct bbb = item->second;
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章