在c ++中使用逻辑作为参数

时间:2017-03-13 04:47:49

标签: c++

假设我有一个类和下面的矢量

class A {
private:
    int a;
    std::string b;
public:
    A();
    virtual ~A();
}

std::vector<A> vecA;

我希望在满足逻辑条件的vecA对象(obj)中找到(例如:obj.a&lt; 10)。你有什么想创建一个搜索类。示例class B,我可以轻松地传递逻辑要求:

B b;
Vector<A> findA = b.Find<A>(vecA, A::a < 10);
B类可能并不完全像上面那样但希望它能够轻松满足要求现有的逻辑陈述。谢谢你的帮助。抱歉,因为愚蠢的问题。

1 个答案:

答案 0 :(得分:1)

在函数式编程中,此操作 - 我们从某个集合中选择与特定谓词函数匹配的所有项目 - 称为过滤。在现代C ++中,可以使用remove_if或来自<algorithms>的{​​{1}}来完成,具体取决于您的情况。