我有一个std::vector
填充了对象。我想过滤并将一些谓词返回true
的所有元素复制到新的std::vector
。
我查看了find
和search
函数,但它们只返回迭代器。
我正在使用 ObjC ++ ,所以我可以使用块函数和仿函数,如果有帮助的话。但是不能使用C ++ 11函数。
答案 0 :(得分:15)
如果您有C ++ 11,请按照Eugen的回答中的建议使用std::copy_if
。否则,您可以使用std::remove_copy_if对谓词的逻辑进行适当的修改。
答案 1 :(得分:12)
您可以使用std :: copy_if方法。请参阅here。