Permutations

Lazily computes all permutations of r using Heap's algorithm.

  1. Permutations!Range permutations(Range r)
  2. struct Permutations(Range)
    struct Permutations (
    Range
    ) if (
    isRandomAccessRange!Range &&
    hasLength!Range
    ) {}

Constructors

this
this(Range r)

Members

Functions

popFront
void popFront()

Properties

empty
bool empty [@property getter]
front
auto front [@property getter]

Return Value

A forward range the elements of which are an std.range.indexed view into r.

Examples

1 import std.algorithm.comparison : equal;
2 import std.range : iota;
3 assert(equal!equal(iota(3).permutations,
4     [[0, 1, 2],
5      [1, 0, 2],
6      [2, 0, 1],
7      [0, 2, 1],
8      [1, 2, 0],
9      [2, 1, 0]]));

See Also

Meta