C++ 算法 find_if() 函数返回范围中 pred 值为真的第一个元素的值,否则给出范围的最后一个元素。
用法
template <class InputIterator, class UnaryPredicate>
InputIterator find_if (InputIterator first, InputIterator last, UnaryPredicate pred);
参数
first:它指定范围的第一个元素。
last:它指定范围的最后一个元素。
pred:它通常是一个一元函数,检查范围值以返回布尔答案。
返回值
该函数返回一个迭代器,指向 pred 值为 true 的范围的第一个元素。如果没有找到这样的元素,则该函数返回最后一个元素。
例子1
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
bool isAnOdd(int i)
{
return((i%2)==1);
}
int main()
{
std::vector<int> newvector;
newvector.push_back(20);
newvector.push_back(35);
newvector.push_back(50);
newvector.push_back(65);
std::vector<int>::iterator ti = std::find_if(newvector.begin(), newvector.end(),isAnOdd);
std::cout<<"Out of the given elements, first odd element is "<<*ti<<"\n";
return 0;
}
输出:
Out of the given elements, first odd element is 35
例子2
#include<iostream>
#include<algorithm>
#include<vector>
bool isEven (int i)
{
return((i%2)==0);
}
int main()
{
std::vector<int> newvector {20, 35, 50, 65};
std::vector<int>::iterator ti;
ti= std::find_if(newvector.begin(),newvector.end(),isEven);
std::cout<<"Out of the given elements, first even element is "<<*ti<<"\n";
return 0;
}
输出:
Out of the given elements, first odd element is 20
复杂度
该函数以线性方式移动,从第一个元素开始向最后一个元素移动。检查 'pred' 的列表值的每个元素。搜索继续进行,直到遇到 'pred' 值不匹配为止。
数据竞争
函数访问指定范围内的所有对象或其中一些对象。
异常
如果任何参数抛出异常,该函数将抛出异常。
相关用法
- C++ find_if_not()用法及代码示例
- C++ find_first_of()用法及代码示例
- C++ find_end()用法及代码示例
- C++ find_by_order()用法及代码示例
- C++ find()用法及代码示例
- C++ fill_n()用法及代码示例
- C++ fill()用法及代码示例
- C++ fill用法及代码示例
- C++ fmax()用法及代码示例
- C++ fdim()用法及代码示例
- C++ fmin()用法及代码示例
- C++ forward_list::unique()用法及代码示例
- C++ forward_list::emplace_front()用法及代码示例
- C++ forward_list::reverse()用法及代码示例
- C++ forward_list::swap()用法及代码示例
- C++ forward_list::front()、forward_list::empty()用法及代码示例
- C++ functional::bad_function_call用法及代码示例
- C++ forward_list::operator=用法及代码示例
- C++ forward_list::clear()、forward_list::erase_after()用法及代码示例
- C++ forward_list emplace_after()、emplace_front()用法及代码示例
注:本文由纯净天空筛选整理自 C++ Algorithm Function find_if()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。