std::findif
时间: 2023-09-08 10:17:12 浏览: 172
find_if的例子
std::find_if 是 C++ 标准库中的一个函数模板,用于在指定范围内查找满足特定条件的元素。它的函数原型如下:
```cpp
template< class InputIt, class UnaryPredicate >
InputIt find_if( InputIt first, InputIt last, UnaryPredicate p );
```
其中,`first` 和 `last` 是迭代器,表示要检查的范围;`p` 是一个一元谓词(即可接受一个参数并返回 bool 类型的函数对象或函数指针),用于定义要查找的条件。
`find_if` 函数从 `first` 开始迭代,直到找到满足条件 `p` 的元素或到达 `last` 结束迭代。如果找到满足条件的元素,则返回指向该元素的迭代器;否则返回 `last`。
以下是一个示例用法,使用 `find_if` 查找一个范围内第一个大于 5 的元素:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> numbers = {1, 3, 5, 7, 9};
auto it = std::find_if(numbers.begin(), numbers.end(), [](int num) {
return num > 5;
});
if (it != numbers.end()) {
std::cout << "First element greater than 5: " << *it << std::endl;
} else {
std::cout << "No element greater than 5 found." << std::endl;
}
return 0;
}
```
输出结果为:
```
First element greater than 5: 7
```
希望这个解答对你有所帮助!如果你还有其他问题,请随时提问。
阅读全文