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()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。