摆脱啊大哥们,小弟我要问的不是要在remove_if之后加下erase的有关问题啊

摆脱啊大哥们,我要问的不是要在remove_if之后加上erase的问题啊?
我要问的是使用remove_if之后有重复的元素怎么办?我不想在元素没删除之前就调用它的析构函数啊?
我在析构函数中执行了非常重要的事,不能执行两次啊.
摆脱了,上次网不容易,再给看看刚才那个帖子吧?

------解决方案--------------------
那就不要用remove_if,用partition
即使是上面这句,我记得effective stl里也有说的
------解决方案--------------------
引用
析构函数中执行了非常重要的事

看这说法,你的类是可以拷贝的吗?如果不能拷贝,慎用STL啊。。。
------解决方案--------------------
LS说得对,带有特殊析构函数的情况通常需要禁止拷贝,而STL许多算法要求对象是可拷贝的。这种情况即使你不用STL,最好也把拷贝禁掉,以防自己的误操作。

C++11引入“移动”的概念,能解决一部分问题,不过不是一两句说得清的,你自己看书吧。



------解决方案--------------------
楼主,最好的解决方案就是用 std::list::remove_if,不要用 std::remove_if,前者效率也会更高,也没那么多乱七八糟的副作用。
------解决方案--------------------
vector的元素直接为指针不就行了