为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C++
牧羊人nacy 2023-04-22 18:14:39
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++)
}

查看完整回答
反对 回复 2023-04-25
?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

崩溃的缘故一般是指针的问题。 如果一个指针指向了未知的地方,而你又调用了delete。那么后果是不可预料的,往往都是崩溃的。所以,你在清楚的时候,map里面的成员函数有野指针没有处理。

查看完整回答
反对 回复 2023-04-25
  • 2 回答
  • 0 关注
  • 131 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信