作者khoguan (Khoguan Phuann)
看板C_and_CPP
标题Re: [问题] map元素的删除?
时间Fri Jul 1 10:48:03 2005
※ 引述《renderer (rendering)》之铭言:
: 那那那 这个问题的标准写法是什麽呢
: 把要 erase 的 keys 存到 vector
: 然後 iterate 这个 vector 把 map 里的 pair erase 掉吗 ???
所谓「标准写法」其实和原po写的差不多,只是没有另外设一个
暂时变数来存下一个 iterator 的值,而是用 postfix ++ 来做。
if (/* 符合条件 */)
child.erase(i++);
else
++i;
这样,照说原po的写法应该也行才对,就用他的程式,加头加尾
写了个完整的小程式测验,是可以正确执行的。已用推文请他详
述他所说的 ++tmp_q1; 执行时会出错到底是出什麽错?错误讯息
为何?
很多人都不晓得要详列这些该列的资讯,增加有心协助的众人的
困扰,无法对症下药。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
※ 编辑: khoguan 来自: 220.130.208.168 (07/01 10:57)
1F:→ cplusplus:应该用第三种? 140.115.217.14 07/01
2F:→ cplusplus:如果是单纯比较KEY的话 用第三种不省掉许多事 140.115.217.14 07/01
3F:→ khoguan:是的。若单纯比较key值,就用第三种,直接支援。220.130.208.168 07/01