.. Algorithms/Querying Algorithms//find_if |20 find_if ======= Synopsis -------- .. parsed-literal:: template< typename Sequence , typename Pred > struct find_if { typedef |unspecified| type; }; Description ----------- Returns an iterator to the first element in ``Sequence`` that satisfies the predicate ``Pred``. Header ------ .. parsed-literal:: #include Parameters ---------- +---------------+-------------------------------+-----------------------------------+ | Parameter | Requirement | Description | +===============+===============================+===================================+ | ``Sequence`` | |Forward Sequence| | A sequence to search in. | +---------------+-------------------------------+-----------------------------------+ | ``Pred`` | Unary |Lambda Expression| | A search condition. | +---------------+-------------------------------+-----------------------------------+ Expression semantics -------------------- For any |Forward Sequence| ``s`` and unary |Lambda Expression| ``pred``: .. parsed-literal:: typedef find_if::type i; :Return type: |Forward Iterator|. :Semantics: ``i`` is the first iterator in the range |begin/end| such that .. parsed-literal:: apply< pred,deref::type >::type::value == true If no such iterator exists, ``i`` is identical to ``end::type``. Complexity ---------- Linear. At most ``size::value`` applications of ``pred``. Example ------- .. parsed-literal:: typedef vector types; typedef find_if >::type iter; BOOST_MPL_ASSERT(( is_same< deref::type, unsigned > )); BOOST_MPL_ASSERT_RELATION( iter::pos::value, ==, 2 ); See also -------- |Querying Algorithms|, |find|, |count_if|, |lower_bound|