在地图中更新CStringArray时崩溃

时间:2016-10-22 04:58:44

标签: c++ visual-studio-2010 stl mfc stdmap

我有一张地图,其中包含CStringArray作为其值。声明类似于

std::map<int, CStringArray&> string_list;

此映射的目的是存储具有相同索引号的字符串。

所以,第一次插入字符串时,进程正常。但是,当我为相同的密钥插入第二个元素时,即更新已经存在的CStringArray时,应用程序正在崩溃。

PF低于代码FYI ..

void FillMyMap(const int key, const CString& str) {
    string_list::iterator list_itr = my_mapp.find(key); //my_map is a member
    if (list_itr != my_mapp.end()) {
        (list_itr->second).Add(str);     //crash occured
    } else {
        CStringArray str_arr;
        str_arr.Add(str);
        my_mapp.Insert(std::pair<int, CStringArray&>(key, str_arr));   //working fine
    }
}

当我用“CStrings的矢量”替换“CStringArray”时,相同的代码工作正常。你能解释一下这次事故发生的原因吗?提前谢谢。

0 个答案:

没有答案