【发布时间】:2011-03-15 16:38:08
【问题描述】:
我已经尝试了所有可能的方法,但未能找到解决方案。请帮忙
我想在遍历地图时删除矢量中的记录。
map < string, vector < record> >::iterator map_it;
for(map_it = map_records.begin(); map_it != map_records.end(); ++map_it){
vector < record>::iterator vec_it;
for(vec_it = (*map_it).second.begin(); vec_it != (*map_it).second.end();){
if(condition){
cout << (*map_it).second.size() << endl;
vec_it = map_it->second.erase(vec_it);
cout << (*map_it).second.size()<< endl;
} else {
++vec_it;
}
}
}
我试过这样的方法,(*map_it).second.erase(vec_it)
如果我查询它的大小并且程序以分段错误结束,它会给出一些长数字
输出:
18446744073709551615
18446744073709551615
分段错误
任何帮助表示赞赏
【问题讨论】:
标签: c++ dictionary vector segmentation-fault