| Home | Libraries | People | FAQ | More

##### search_n

###### Prototype

    template<class ForwardRange, class Integer, class Value>
    typename range_iterator<ForwardRange>::type
    search_n(ForwardRange& rng, Integer n, const Value& value);

    template<class ForwardRange, class Integer, class Value>
    typename range_iterator<const ForwardRange>::type
    search_n(const ForwardRange& rng, Integer n, const Value& value);

    template<class ForwardRange, class Integer, class Value, class BinaryPredicate>
    typename range_iterator<ForwardRange>::type
    search_n(ForwardRange& rng, Integer n, const Value& value,
             BinaryPredicate binary_pred);

    template<class ForwardRange, class Integer, class Value, class BinaryPredicate>
    typename range_iterator<const ForwardRange>::type
    search_n(const ForwardRange& rng, Integer n, const Value& value,
             BinaryPredicate binary_pred);

###### Description

`search_n` searches `rng` for a sequence of length `n` equal to `value` where equality is determined by operator== in the non-predicate case, and by a predicate when one is supplied.

###### Definition

Defined in the header file `boost/range/algorithm/search_n.hpp`

###### Requirements

For the non-predicate versions:

- `ForwardRange` is a model of the Forward Range Concept.
- `ForwardRange`'s value type is a model of the `EqualityComparableConcept`.
- `ForwardRange`s value type can be compared for equality with `Value`.
- `Integer` is a model of the `IntegerConcept`.

For the predicate versions:

- `ForwardRange` is a model of the Forward Range Concept.
- `BinaryPredicate` is a model of the `BinaryPredicateConcept`.
- `ForwardRange`'s value type is convertible to `BinaryPredicate`'s first argument type.
- `Value` is convertible to `BinaryPredicate`'s second argument type.
- `Integer` is a model of the `IntegerConcept`.

###### Complexity

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