【发布时间】:2013-04-17 05:33:08
【问题描述】:
我有以下代码:
//update it in the map
std::map<std::string, std::string>::iterator it;
for(it = spreadsheets.at(i).cells.begin(); it != spreadsheets.at(i).cells.end(); ++it)
{
if(it->first == change.first)
{
if(change.second == "")
{
spreadsheets.at(i).cells.erase(change.first);
}
else
{
it->second = change.second;
}
}
}
上面的代码在我的 mac 上完美运行,但是当我在 linux 计算机上运行时,它会在 spreadsheets.at(i).cells.erase(change.first); 上引发 seg 错误
知道是什么导致了这个错误吗?我尝试将erase(change.first) 更改为erase(it),但仍然出现段错误。
【问题讨论】:
标签: c++