首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2013-02-24 
摆脱啊大哥们,我要问的不是要在remove_if之后加上erase的问题啊?我要问的是使用remove_if之后有重复的元素

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

[解决办法]
那就不要用remove_if,用partition
即使是上面这句,我记得effective stl里也有说的
[解决办法]

引用
析构函数中执行了非常重要的事

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

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



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

热点排行