Function std.range.dropBackExactly
Similar to drop
and dropBack
but they call
range
and popFrontExactly
(n)range
instead.
R dropBackExactly(R)
(
R range,
size_t n
)
if (isBidirectionalRange!R);
Note
Unlike drop
, dropExactly
will assume that the
range holds at least n
elements. This makes dropExactly
faster than drop
, but it also means that if range
does
not contain at least n
elements, it will attempt to call popFront
on an empty range, which is undefined behavior. So, only use
popFrontExactly
when it is guaranteed that range
holds at least
n
elements.
Parameters
Name | Description |
---|---|
range | the input range to drop from |
n | the number of elements to drop |
Returns
See Also
std
,
std
Example
import std .algorithm .comparison : equal;
import std .algorithm .iteration : filterBidirectional;
auto a = [1, 2, 3];
writeln(a .dropExactly(2)); // [3]
writeln(a .dropBackExactly(2)); // [1]
string s = "日本語";
writeln(s .dropExactly(2)); // "語"
writeln(s .dropBackExactly(2)); // "日"
auto bd = filterBidirectional!"true"([1, 2, 3]);
assert(bd .dropExactly(2) .equal([3]));
assert(bd .dropBackExactly(2) .equal([1]));
Authors
Andrei Alexandrescu, David Simcha, Jonathan M Davis, and Jack Stouffer. Credit for some of the ideas in building this module goes to Leonardo Maffi.