View source code
Display the source code in std/range.d from which this page was generated on
github.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.
Requires a signed-in GitHub account. This works well for small changes.
If you'd like to make larger changes you may want to consider using
local clone.
Page wiki
View or edit the community-maintained wiki page associated with this page.
Template std.range.SortedRange.trisect
Returns a tuple r such that r[0] is the same as the result
of , lowerBound(value)r[1] is the same as the result of , and equalRange(value)r[2] is the same as the result of . The call is faster than computing all three
separately. Uses a search schedule similar to upperBound(value). Completes the entire search in Ο(equalRangelog(n)) time.
Arguments
template trisect(V);
Functions
| Function name | Description |
|---|---|
| trisect |
Example
auto a = [ 1, 2, 3, 3, 3, 4, 4, 5, 6 ]; auto r = assumeSorted(a).trisect(3); assert(equal(r[0], [ 1, 2 ])); assert(equal(r[1], [ 3, 3, 3 ])); assert(equal(r[2], [ 4, 4, 5, 6 ]));
Authors
Andrei Alexandrescu, David Simcha, and Jonathan M Davis. Credit for some of the ideas in building this module goes to Leonardo Maffi.