Freigeben über


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

Siehe auch

Referenz

find_if (STL Samples)

Standardvorlagenbibliothek