find_if
Recherche la position de la première occurrence d'un élément dans une plage qui remplit une condition spécifiée.
template<class InputIterator, class Predicate>
InputIterator find_if(
InputIterator _First,
InputIterator _Last,
Predicate _Pred
);
Paramètres
_First
Un itérateur d'entrée adressant la position du premier élément dans la plage à rechercher._Last
Un itérateur d'entrée adressant une position au delà de le dernier élément dans la plage à rechercher._Pred
Objet défini par l'utilisateur de fonction d'attribut pour lequel définit la condition à répondre par l'élément recherché.Un attribut prend un argument unique et retourne true ou false.
Valeur de retour
Un itérateur d'entrée qui traite le premier élément de la plage qui remplit la condition a spécifié par l'attribut.
Notes
Cette fonction de modèle est une généralisation de l'algorithme recherche, en remplaçant l'attribut « est égal à une valeur spécifique » par tout attribut.
Exemple
// 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;
}
}
Configuration requise
en-tête : <algorithm>
l'espace de noms : DST