The return of std.algorithm.find

Steven Schveighoffer via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Tue Nov 15 09:03:49 PST 2016


On 11/15/16 4:43 AM, RazvanN wrote:
> The find function which receives an input haystack and a needle returns
> the haystack advanced to the first occurrence of the needle. For normal
> ranges this is fine, but for
> sorted ranges (aka SortedRange) it is a bit odd. For example:
>
> find(assumeSorted[1, 2, 4, 5, 6, 7], 4) would return [4, 5, 6, 7]. This
> is in terms with the general policy of the find function, but is weird.
> Since we know the range is sorted, shouldn't the result be [1, 2, 4]?

A sorted range provides better mechanisms to find values as members of 
SortedRange. Don't use find(assumeSorted(...)), as it's still a linear 
search.

-Steve



More information about the Digitalmars-d-learn mailing list