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;
    }

 

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