| Home | Libraries | People | FAQ | More

##### find

###### Description

Finds the first element of a given type within a sequence.

###### Synopsis

    template<
        typename T,
        typename Sequence
        >
    typename result_of::find<Sequence const, T>::type find(Sequence const& seq);

    template<
        typename T,
        typename Sequence
        >
    typename result_of::find<Sequence, T>::type find(Sequence& seq);

Table 1.55. Parameters

Parameter | Requirement | Description
--- | --- | ---
`seq` | A model of Forward Sequence | The sequence to search
`T` | Any type | The type to search for

###### Expression Semantics

    find<T>(seq)

Return type: A model of the same iterator category as the iterators of `seq`.

Semantics: Returns an iterator to the first element of `seq` of type `T`, or ``end`(seq)` if there is no such element. Equivalent to ``find_if`<boost::is_same<_, T> >(seq)`

###### Complexity

Linear. At most ``result_of::size`<Sequence>::value` comparisons.

###### Header

    #include <boost/fusion/algorithm/query/find.hpp>
    #include <boost/fusion/include/find.hpp>

###### Example

    const vector<char,int> vec('a','0');
    assert(*find<int>(vec) == '0');
    assert(find<double>(vec) == end(vec));