View source code
Display the source code in std/algorithm/searching.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.
Function std.algorithm.searching.until
Lazily iterates until the element rangee for which
pred(e, is true.
sentinel)
Prototypes
Until!(pred,Range,Sentinel) until(alias pred, Range, Sentinel)( Range range, Sentinel sentinel, OpenRight openRight = OpenRight.yes ) if (!is(Sentinel == OpenRight)); Until!(pred,Range,void) until(alias pred, Range)( Range range, OpenRight openRight = OpenRight.yes );
Parameters
| Name | Description |
|---|---|
| pred | Predicate to determine when to stop. |
| range | The input range to iterate over. |
| sentinel | The element to stop at. |
| openRight | Determines whether the element for which the given predicate is
true should be included in the resulting range (), or
not (). |
Returns
An input range that
iterates over the original range's elements, but ends when the specified
predicate becomes true. If the original range is a
forward range or
higher, this range will be a forward range.
Example
import std.algorithm.comparison : equal; int[] a = [ 1, 2, 4, 7, 7, 2, 4, 7, 3, 5]; assert(equal(a.until(7), [1, 2, 4][])); assert(equal(a.until(7, OpenRight.no), [1, 2, 4, 7][]));