find_if
Sucht die Position des ersten Vorkommens eines Elements in einem Bereich, der eine angegebene Bedingung erfüllt.
template<class InputIterator, class Predicate>
InputIterator find_if(
InputIterator _First,
InputIterator _Last,
Predicate _Pred
);
Parameter
_First
Ein Eingabeiterator, der die Position des ersten Elements im Bereich behandelt gefunden werden._Last
Ein Eingabeiterator, der die Position eine hinter dem letzten Element im Bereich behandelt gefunden werden._Pred
Benutzerdefiniertes Prädikatfunktionsobjekt, das die von definiert das Element erfüllt werden Bedingung, nach dem gesucht wird.Ein Prädikat akzeptiert einzelnes Argument und gibt true oder false zurück.
Rückgabewert
Ein Eingabeiterator, der das erste Element im Bereich behandelt, der die Bedingung erfüllt, wurden vom Prädikat an.
Hinweise
Diese Vorlagenfunktion ist eine Verallgemeinerung des Algorithmus Suche und ersetzt das Prädikat "entspricht ein bestimmter Wert" mit jedem Prädikat.
Beispiel
// 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;
}
}
Anforderungen
Header: <algorithm>
Namespace: std