【发布时间】:2012-06-14 07:07:23
【问题描述】:
我有一个装满对象的std::vector。我想过滤并复制某些谓词为其返回true 的所有元素到一个新的std::vector。
我查看了 find 和 search 函数,但它们只返回迭代器。
我正在使用 ObjC++,所以如果有帮助的话,我可以使用块函数和仿函数。但是不能使用 C++11 函数。
【问题讨论】:
标签: c++ stl vector objective-c++
我有一个装满对象的std::vector。我想过滤并复制某些谓词为其返回true 的所有元素到一个新的std::vector。
我查看了 find 和 search 函数,但它们只返回迭代器。
我正在使用 ObjC++,所以如果有帮助的话,我可以使用块函数和仿函数。但是不能使用 C++11 函数。
【问题讨论】:
标签: c++ stl vector objective-c++
如果您有 C++11,请按照 Eugen 的回答中的建议使用 std::copy_if。否则,您可以使用 std::remove_copy_if 并对谓词的逻辑进行适当修改。
【讨论】:
copy_if。
您可以使用 std::copy_if 方法。见here。
【讨论】: