std::find_if
时间: 2024-02-04 07:03:51 浏览: 34
std::find_if是C++中STL库中的一个函数,用于在给定范围内查找第一个满足指定条件的元素。它接受一个范围和一个谓词(即一个判断条件的函数)作为参数,并返回第一个满足条件的元素的迭代器。如果在整个范围内都找不到满足条件的元素,则返回指向范围末尾的迭代器。
以下是一个示例代码,演示了如何使用std::find_if函数来查找一个vector中的第一个奇数值:
```cpp
#include <algorithm>
#include <iostream>
#include <vector>
bool IsOdd(int i) {
return (i % 2) == 1;
}
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
auto result = std::find_if(vec.begin(), vec.end(), IsOdd);
if (result != vec.end()) {
std::cout << "The first odd value is " << *result << '\n';
} else {
std::cout << "No odd values were found.\n";
}
return 0;
}
```
上述代码中,我们定义了一个IsOdd函数,用于判断一个整数是否为奇数。然后我们创建了一个vector,并使用std::find_if函数在该vector中查找第一个奇数值。如果找到了奇数值,则输出该值;如果没有找到奇数值,则输出相应的提示信息。