【问题标题】:How to make std::vector from other vector with specific filter?如何使用特定过滤器从其他向量制作 std::vector?
【发布时间】:2012-06-14 07:07:23
【问题描述】:

我有一个装满对象的std::vector。我想过滤并复制某些谓词为其返回true 的所有元素到一个新的std::vector

我查看了 findsearch 函数,但它们只返回迭代器。

我正在使用 ObjC++,所以如果有帮助的话,我可以使用块函数和仿函数。但是不能使用 C++11 函数。

【问题讨论】:

    标签: c++ stl vector objective-c++


    【解决方案1】:

    如果您有 C++11,请按照 Eugen 的回答中的建议使用 std::copy_if。否则,您可以使用 std::remove_copy_if 并对谓词的逻辑进行适当修改。

    【讨论】:

    • @Protheus "remove_copy_if" 不是很直观,所以很容易错过。幸运的是,C++11 终于给了我们copy_if
    【解决方案2】:

    您可以使用 std::copy_if 方法。见here

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-19
    • 1970-01-01
    相关资源
    最近更新 更多