次のコードがあります。
//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);
このエラーの原因は何ですか? に変更しようとしerase(change.first)
ましたerase(it)
が、まだセグメント障害が発生しています。