C++find_if怎么使用
时间: 2023-08-08 17:09:54 浏览: 123
`std::find_if` 是 C++ STL 中的一个算法,用于在给定范围内查找第一个使谓词返回 true 的元素。
使用 `std::find_if` 的一般步骤如下:
1. 引入头文件 `#include <algorithm>`
2. 定义一个可调用对象(函数、函数对象或 Lambda 表达式)作为谓词,该谓词接受一个元素作为参数,并返回 bool 类型的值。
3. 调用 `std::find_if`,传入起始和结束迭代器,以及谓词函数(或函数对象、Lambda 表达式)。
例如,以下代码演示了如何使用 `std::find_if` 在一个 vector 中查找第一个大于 10 的元素:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> nums {5, 7, 11, 13, 15};
auto it = std::find_if(nums.begin(), nums.end(), [](int x) { return x > 10; });
if (it != nums.end()) {
std::cout << "The first element greater than 10 is " << *it << std::endl;
} else {
std::cout << "No element greater than 10 found." << std::endl;
}
return 0;
}
```
输出:
```
The first element greater than 10 is 11
```
注意,`std::find_if` 的返回值是一个迭代器,指向第一个使谓词返回 true 的元素。如果没有找到这样的元素,则返回最后一个元素的下一个迭代器(即 `end()`)。因此,需要用返回值判断是否找到了目标元素。
阅读全文