find_if
找出項目的第一次出現的位置中符合指定之條件的範圍。
template<class InputIterator, class Predicate>
InputIterator find_if(
InputIterator _First,
InputIterator _Last,
Predicate _Pred
);
參數
_First
處理輸入的 Iterator 的第一個項目位置在要搜尋的範圍。_Last
處理輸入的 Iterator 超過最後一個項目的位置是在要搜尋的範圍。_Pred
定義項目會滿足條件會搜尋之使用者定義的述詞函式物件。 述詞會採用單一引數並傳回 true 或 false。
傳回值
處理已在範圍中第一個項目符合條件的輸入 Iterator 所指定的述詞。
備註
這個樣板函式是演算法 尋找的一般化,取代述詞「等於特定值」的任何一個述詞。
範例
// alg_find_if.cpp
// compile with: /EHsc
#include <list>
#include <algorithm>
#include <iostream>
bool greater10 ( int value )
{
return value >10;
}
int main( )
{
using namespace std;
list <int> L;
list <int>::iterator Iter;
list <int>::iterator result;
L.push_back( 5 );
L.push_back( 10 );
L.push_back( 15 );
L.push_back( 20 );
L.push_back( 10 );
cout << "L = ( " ;
for ( Iter = L.begin( ) ; Iter != L.end( ) ; Iter++ )
cout << *Iter << " ";
cout << ")" << endl;
result = find_if( L.begin( ), L.end( ), &greater10 );
if ( result == L.end( ) )
cout << "There is no element greater than 10 in list L."
<< endl;
else
{
result++;
cout << "There is an element greater than 10 in list L,"
<< "\n and it is followed by a "
<< *(result) << "." << endl;
}
}
需求
標題: <algorithm>
命名空間: std