在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
对象来查找向量中的第一个偶数。