std.range.EvenChunks/evenChunks
- multiple declarations
Function evenChunks
This range splits a source
range into chunkCount
chunks of
approximately equal length. Source
must be a forward range with
known length.
EvenChunks!Source evenChunks(Source)
(
Source source,
size_t chunkCount
)
if (isForwardRange!Source && hasLength!Source);
Unlike chunks
, evenChunks
takes a chunk count (not size).
The returned range will contain zero or more source
elements followed by source
elements. If source
, some chunks will be empty.
chunkCount
must not be zero, unless source
is also empty.
Example
import std .algorithm .comparison : equal;
auto source = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
auto chunks = evenChunks(source, 3);
writeln(chunks[0]); // [1, 2, 3, 4]
writeln(chunks[1]); // [5, 6, 7]
writeln(chunks[2]); // [8, 9, 10]
Struct EvenChunks
This range splits a source
range into chunkCount
chunks of
approximately equal length. Source
must be a forward range with
known length.
struct EvenChunks(Source)
if (isForwardRange!Source && hasLength!Source);
Unlike chunks
, evenChunks
takes a chunk count (not size).
The returned range will contain zero or more source
elements followed by source
elements. If source
, some chunks will be empty.
chunkCount
must not be zero, unless source
is also empty.
Constructors
Name | Description |
---|---|
this
(source, chunkCount)
|
Standard constructor |
Properties
Name | Type | Description |
---|---|---|
back [get]
|
auto | Indexing, slicing and bidirectional operations and range primitives.
Provided only if hasSlicing!Source is true .
|
empty [get]
|
bool | Forward range primitives. Always present. |
front [get]
|
auto | Forward range primitives. Always present. |
length [get]
|
size_t | Length |
save [get]
|
typeof(this) | Forward range primitives. Always present. |
Methods
Name | Description |
---|---|
opIndex
(index)
|
Indexing, slicing and bidirectional operations and range primitives.
Provided only if hasSlicing!Source is true .
|
opSlice
(lower, upper)
|
Indexing, slicing and bidirectional operations and range primitives.
Provided only if hasSlicing!Source is true .
|
popBack
()
|
Indexing, slicing and bidirectional operations and range primitives.
Provided only if hasSlicing!Source is true .
|
popFront
()
|
Forward range primitives. Always present. |
Example
import std .algorithm .comparison : equal;
auto source = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
auto chunks = evenChunks(source, 3);
writeln(chunks[0]); // [1, 2, 3, 4]
writeln(chunks[1]); // [5, 6, 7]
writeln(chunks[2]); // [8, 9, 10]
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.