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 Ο(equalRange
log(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.