Partager via


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

Voir aussi

Référence

find_if (STL Samples)

Modèles Standard