我有一张地图,其中包含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”时,相同的代码工作正常。你能解释一下这次事故发生的原因吗?提前谢谢。