map.erase(...)应该怎么用,为什么运行总是出错?

c++stl里面的map.erase(...)

应该怎么用 运行总是崩溃

另外delete可以删除map里的成员么

牧羊人nacy
浏览 132回答 2
2回答

largeQ

你不会是在循环里用erase吧。这样的原先的迭代器就失效了。你说的delete是什么?同时erase是返回下一个迭代器。因为要用map stlfor(it = stl.begin(); it != stl.end()){if(),,it = stl.erase(it );else it ++// 或者用 st.erase(it++)}

料青山看我应如是

崩溃的缘故一般是指针的问题。 如果一个指针指向了未知的地方,而你又调用了delete。那么后果是不可预料的,往往都是崩溃的。所以,你在清楚的时候,map里面的成员函数有野指针没有处理。
打开App,查看更多内容
随时随地看视频慕课网APP