C++ STL map析构函数core了
答案:2 悬赏:10 手机版
解决时间 2021-02-12 04:54
- 提问者网友:龅牙恐龙妹
- 2021-02-11 10:45
C++ STL map析构函数core了a.h里定义了一个结构体param,
该结构体里有一个map
b.cpp #include了a.h,使用了param,
但是b里自己b里的调用都没有操作PATAM里的那个map,结果最后core信息写得是~map()
最佳答案
- 五星知识达人网友:洒脱疯子
- 2021-02-11 12:12
看代码
全部回答
map中可以用迭代器修改value值和访问key值,但是key值是不允许修改的.这也是map容器所规定的.如果一定要修改key值,只有以一个value相同的新元素替换掉旧元素.修改value值很方便:map::iteratorpos;//由pos指向要修改的值pos->second=.//这样直接赋值就可以修改value值了修改key值只能用新元素替换下面是一个泛化函数:templateinlineboolreplace_key(t&c,consttypenamet::key_type&old_key,consttypenamet::key_type&new_key){typenamet::iteratorpos;pos=c.find(old_key);if(pos!=c.end()){c.insert(typenamet::value_type(new_key,pos->second));//插入新key值,以原来对应key的value值继续作为value值插入c.erase(pos);//擦去旧的元素.这样就完成了key值的改变returntrue;}elsereturnfalse;}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯