C++中谓词函数指什么,请结合C++代码解释一下/
时间: 2024-03-05 14:53:03 浏览: 141
C++中,谓词函数(Predicate Function)是指一个可以接受一个或多个参数,并返回一个bool值的函数。在STL中,谓词函数被广泛应用于算法中,用于对容器中的元素进行筛选、排序、查找等操作。
下面是一个简单的例子,用于说明谓词函数的概念和用法:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
// 谓词函数,用于判断一个数是否大于10
bool greaterThan10(int num) {
return num > 10;
}
int main() {
std::vector<int> vec = {5, 12, 3, 8, 15};
// 使用 std::count_if 算法和 greaterThan10 谓词函数,统计 vec 中大于10的元素个数
int count = std::count_if(vec.begin(), vec.end(), greaterThan10);
std::cout << "Count: " << count << std::endl;
return 0;
}
```
在上面的代码中,我们定义了一个谓词函数 greaterThan10,用于判断一个数是否大于10。然后,我们使用 std::count_if 算法和 greaterThan10 谓词函数来统计 vec 容器中大于10的元素个数。在调用 std::count_if 算法时,需要传入谓词函数作为第三个参数,表示对容器中的每个元素都要调用该函数进行判断。
通过谓词函数,我们可以方便地对容器中的元素进行条件筛选、排序、查找等操作,这也是STL中算法的一大特点。
阅读全文