マップ内でいくつかのベクトルをソートしようとしていますが、プログラムを実行するとセグメンテーション違反が発生します。
typedef map<int, vector<int> > Map;
Map m;
for (Map::iterator it = m.begin(); it != m.end(); ++it) {
sort(it->second.begin(), it->second.end());
}
並べ替えの直前に、データを挿入するセクションがあります。
int x = 2;
int y = 3;
map<int, vector<int> >::iterator itTemp;
itTemp = FontaneMapX.find(x);
if (itTemp == m.end())
itTemp = m.insert(make_pair(x,vector<int>())).first;
itTemp->second.push_back(y);
このセクションの後にアイテムを削除/追加したり、マップ内のベクトルにイベントを追加したりしません。
何を変更すべきかについてのアイデアはありますか?