Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext
search
Prototype

template<class ForwardRange1, class ForwardRange2>
typename range_iterator<ForwardRange1>::type
search(ForwardRange1& rng1, const ForwardRange2& rng2);

template<class ForwardRange1, class ForwardRange2>
typename range_iterator<const ForwardRange1>::type
search(const ForwardRange1& rng1, const ForwardRange2& rng2);

template<
    class ForwardRange1,
    class ForwardRange2,
    class BinaryPredicate
    >
typename range_iterator<ForwardRange1>::type,
search(ForwardRange1& rng1, const ForwardRange2& rng2, BinaryPredicate pred);

template<
    class ForwardRange1,
    class ForwardRange2,
    class BinaryPredicate
    >
typename range_iterator<const ForwardRange1>::type
search(const ForwardRange1& rng1, ForwardRange2& rng2, BinaryPredicate pred);


template<
    range_return_value re,
    class ForwardRange1,
    class ForwardRange2
    >
typename range_return<ForwardRange1, re>::type
search(ForwardRange1& rng1, const ForwardRange2& rng2);

template<
    range_return_value re,
    class ForwardRange1,
    class ForwardRange2
    >
typename range_return<const ForwardRange1, re>::type
search(const ForwardRange1& rng1, const ForwardRange2& rng2);

template<
    range_return_value re,
    class ForwardRange1,
    class ForwardRange2,
    class BinaryPredicate
    >
typename range_return<ForwardRange1, re>::type,
search(ForwardRange1& rng1, const ForwardRange2& rng2, BinaryPredicate pred);

template<
    range_return_value re,
    class ForwardRange1,
    class ForwardRange2,
    class BinaryPredicate
    >
typename range_return<const ForwardRange1, re>::type
search(const ForwardRange1& rng1, const ForwardRange2& rng2, BinaryPredicate pred);

Description

The versions of search that return an iterator, return an iterator to the start of the first subsequence in rng1 that is equal to the subsequence rng2. The end(rng1) is returned if no such subsequence exists in rng1. Equality is determined by operator== for non-predicate versions of search, and by satisfying pred in the predicate versions.

The versions of search that return a range_return, defines found in the same manner as the returned iterator described above.

Definition

Defined in the header file boost/range/algorithm/search.hpp

Requirements

For the non-predicate versions:

For the predicate versions:

Complexity

Average complexity is Linear. Worst-case complexity is quadratic.


PrevUpHomeNext