Home | Libraries | People | FAQ | More |
template<class ForwardRange1, class ForwardRange2> typename range_iterator<ForwardRange1>::type find_end(ForwardRange1& rng1, const ForwardRange2& rng2); template< class ForwardRange1, class ForwardRange2, class BinaryPredicate > typename range_iterator<ForwardRange1>::type find_end(ForwardRange1& rng1, const ForwardRange2& rng2, BinaryPredicate pred); template< range_return_value re, class ForwardRange1, class ForwardRange2 > typename range_return<ForwardRange1, re>::type find_end(ForwardRange1& rng1, const ForwardRange2& rng2); template< range_return_value re, class ForwardRange1, class ForwardRange2, class BinaryPredicate > typename range_return<ForwardRange1, re>::type find_end(ForwardRange1& rng1, const ForwardRange2& rng2, BinaryPredicate pred);
The versions of find_end
that return an iterator, return an iterator to the beginning of the last
sub-sequence equal to rng2
within rng1
. Equality
is determined by operator==
for non-predicate versions of find_end
, and by satisfying pred
in the predicate versions. The
versions of find_end
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/find_end.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 objects of 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.
The number of comparisons is proportional to distance(rng1) * distance(rng2)
. If both ForwardRange1
and ForwardRange2
are
models of BidirectionalRangeConcept
then the average complexity is linear and the worst case is distance(rng1) * distance(rng2)
.