[Issue 20798] New: generic binarySearch (and others) should be available in std.algorithm
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Tue May 5 19:13:35 UTC 2020
https://issues.dlang.org/show_bug.cgi?id=20798
Issue ID: 20798
Summary: generic binarySearch (and others) should be available
in std.algorithm
Product: D
Version: D2
Hardware: All
OS: All
Status: NEW
Severity: enhancement
Priority: P1
Component: phobos
Assignee: nobody at puremagic.com
Reporter: schveiguy at yahoo.com
Let's say I have a large struct, S, and I sort an array of them according to
one field:
auto sorted = someArr.sort!((a, b) => a.field < b.field);
Now, I have this SortedRange, but I can only use binary searches and the like
if I manufacture an entire S element. But I should be able to search using
something like:
sorted.binarySearch!((a, b) => a.field < b)(fieldVal);
This is not available. In fact, the only place where binary search is
implemented in Phobos is in std.range, inside the SortedRange package.
I think binarySearch, and the other search mechanisms there, should be
available as standalone functions. They can't be proven to be correct at
compile time, but that's not important. I don't care if the answer might be
WRONG because the sort assumption is incorrect, I just shouldn't have to
reimplement binary search on my own, phobos should have this building block
available.
--
More information about the Digitalmars-d-bugs
mailing list