摆脱啊大哥们,我要问的不是要在remove_if之后加上erase的问题啊?

zhao1zhong6 2013-02-05 11:34:39
我要问的是使用remove_if之后有重复的元素怎么办?我不想在元素没删除之前就调用它的析构函数啊?
我在析构函数中执行了非常重要的事,不能执行两次啊.
摆脱了,上次网不容易,再给看看刚才那个帖子吧?
...全文
218 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sniffer12345 2013-02-06
  • 打赏
  • 举报
回复
vector的元素直接为指针不就行了
ri_aje 2013-02-06
  • 打赏
  • 举报
回复
楼主,最好的解决方案就是用 std::list::remove_if,不要用 std::remove_if,前者效率也会更高,也没那么多乱七八糟的副作用。
dingqiang107 2013-02-06
  • 打赏
  • 举报
回复
LS说得对,带有特殊析构函数的情况通常需要禁止拷贝,而STL许多算法要求对象是可拷贝的。这种情况即使你不用STL,最好也把拷贝禁掉,以防自己的误操作。 C++11引入“移动”的概念,能解决一部分问题,不过不是一两句说得清的,你自己看书吧。
rocktyt 2013-02-05
  • 打赏
  • 举报
回复
引用
析构函数中执行了非常重要的事
看这说法,你的类是可以拷贝的吗?如果不能拷贝,慎用STL啊。。。
rocktyt 2013-02-05
  • 打赏
  • 举报
回复
那就不要用remove_if,用partition 即使是上面这句,我记得effective stl里也有说的
taodm 2013-02-05
  • 打赏
  • 举报
回复
你stl算白学了,effective stl算白看啦。 stl不是给你干这特殊用途的,它是通用用途的。 自己写一个数据结构来干这活,漂亮点可以写得和stl有相同风格的接口。

64,632

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧