c++stl里面的map.erase(...)应该怎么用 运行总是崩溃另外delete可以删除map里的成员么
2 回答
largeQ
TA贡献2039条经验 获得超7个赞
你不会是在循环里用erase吧。
这样的原先的迭代器就失效了。
你说的delete是什么?
同时erase是返回下一个迭代器。因为要用
map stl
for(it = stl.begin(); it != stl.end())
{
if(),,
it = stl.erase(it );
else
it ++
// 或者用 st.erase(it++)
}
料青山看我应如是
TA贡献1772条经验 获得超8个赞
崩溃的缘故一般是指针的问题。 如果一个指针指向了未知的地方,而你又调用了delete。那么后果是不可预料的,往往都是崩溃的。所以,你在清楚的时候,map里面的成员函数有野指针没有处理。
- 2 回答
- 0 关注
- 131 浏览
添加回答
举报
0/150
提交
取消