谓词函数
时间: 2023-10-18 12:15:00 浏览: 107
谓词函数是一种返回布尔值的函数,通常用于STL算法中的筛选、排序、查找等操作。在STL算法中,谓词函数可以作为参数传递给算法,用于指定算法的行为。
在C++中,谓词函数可以是函数指针、函数对象或者lambda表达式,只要它们返回一个布尔值即可。下面是一个谓词函数的示例:
```c++
bool isEven(int n) {
return n % 2 == 0;
}
```
在这个示例中,我们定义了一个名为 `isEven` 的函数,它接受一个整数参数 `n`,并返回一个布尔值表示 `n` 是否为偶数。
下面是一个使用谓词函数的示例,在这个示例中,我们使用STL算法 `std::find_if` 查找一个数组中的第一个偶数:
```c++
#include <iostream>
#include <algorithm>
#include <vector>
bool isEven(int n) {
return n % 2 == 0;
}
int main() {
std::vector<int> v = {1, 3, 5, 2, 4, 6};
auto it = std::find_if(v.begin(), v.end(), isEven);
if (it != v.end()) {
std::cout << "The first even number is: " << *it << std::endl;
} else {
std::cout << "No even number found" << std::endl;
}
return 0;
}
```
在这个示例中,我们定义了一个名为 `v` 的整数向量,并使用STL算法 `std::find_if` 查找第一个偶数。我们将谓词函数 `isEven` 作为第三个参数传递给 `std::find_if` 算法,用于指定查找的条件。
当我们运行这个程序时,输出应该是:
```
The first even number is: 2
```
这个示例演示了如何使用谓词函数在STL算法中指定条件。在实际编程中,谓词函数通常用于筛选、排序、查找等操作。
阅读全文