【发布时间】:2014-05-01 22:05:37
【问题描述】:
我有一个std::vector<std::shared_ptr<Foo>>,我想从中erase-remove 匹配某些谓词的项目。被移除的对象应该有一个被调用的方法,该方法设置一些状态以便在其他地方使用。
当返回 true 时,我不应该在谓词函数中这样做吗?感觉有点像混合关注点,但我能想到的唯一选择似乎更难看。
【问题讨论】:
-
最好总结替代方案,否则您将得到它们作为答案。
-
我就是这样做的,但是,我能说什么呢,我很懒。没有其他选择仍然允许您使用
algorithm库,对吧?因此,无论哪种方式,您都违反了一些“完美”编程标准的概念。 (编辑:显然有,但我仍然很想按照你的方式去做!) -
这是我能想到的最有效的方法。
标签: c++ c++11 erase-remove-idiom