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.

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).