阅读量:0
在C++中,你可以通过重载operator()
来实现对谓词运算符的重载
#include<iostream> #include<vector> #include<algorithm> class MyPredicate { public: bool operator()(int value) const { return value % 2 == 0; } }; int main() { std::vector<int> numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; MyPredicate predicate; auto result = std::find_if(numbers.begin(), numbers.end(), predicate); if (result != numbers.end()) { std::cout << "First even number found: " << *result<< std::endl; } else { std::cout << "No even numbers found."<< std::endl; } return 0; }
在这个示例中,我们创建了一个名为MyPredicate
的类,它重载了operator()
。这个操作符接受一个整数值并返回一个布尔值,表示该值是否为偶数。然后我们使用std::find_if
算法和MyPredicate
对象来查找向量中的第一个偶数。