Home | Libraries | People | FAQ | More |
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);
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.
Defined in the header file boost/range/algorithm/search.hpp
For the non-predicate versions:
ForwardRange1
is
a model of the Forward
Range Concept.
ForwardRange2
is
a model of the Forward
Range Concept.
ForwardRange1
's value
type is a model of the EqualityComparableConcept
.
ForwardRange2
's value
type is a model of the EqualityComparableConcept
.
ForwardRange1
s value
type can be compared for equality with ForwardRange2
's
value type.
For the predicate versions:
ForwardRange1
is
a model of the Forward
Range Concept.
ForwardRange2
is
a model of the Forward
Range Concept.
BinaryPredicate
is
a model of the BinaryPredicateConcept
.
ForwardRange1
's value
type is convertible to BinaryPredicate
's
first argument type.
ForwardRange2
's value
type is convertible to BinaryPredicate
's
second argument type.
Average complexity is Linear. Worst-case complexity is quadratic.