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

zhao1zhong6 2013-02-05 11:34:39
我要问的是使用remove_if之后有重复的元素怎么办?我不想在元素没删除之前就调用它的析构函数啊?
我在析构函数中执行了非常重要的事,不能执行两次啊.
摆脱了,上次网不容易,再给看看刚才那个帖子吧?
...全文
194 6 点赞 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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有相同风格的接口。
  • 打赏
  • 举报
回复
相关推荐
发帖
C++ 语言
加入

6.0w+

社区成员

C++ 语言相关问题讨论,技术干货分享,前沿动态等
申请成为版主
帖子事件
创建了帖子
2013-02-05 11:34
社区公告
暂无公告