NaturalNumberSet.elements

Returns a range of the elements in this set. The elements are ordered ascending.

struct NaturalNumberSet
@property const pure nothrow @safe @nogc
elements
()

Examples

import std.algorithm : equal;
import std.range : iota;

NaturalNumberSet set;
auto someNumbers = iota(set.partSize).filter!"a % 3 == 0";

foreach (i; someNumbers)
{
    set.add(i);
}

assert(equal(someNumbers, set.elements));

The set may be modified while iterating:

import std.algorithm : equal;
import std.range : iota;

enum numElements = 64;
auto set = NaturalNumberSet(numElements, Yes.addAll);

foreach (i; set.elements)
{
    if (i % 10 == 0)
        set.remove(i + 1);
}

auto expectedNumbers = iota(numElements).filter!"a == 0 || !((a - 1) % 10 == 0)";
assert(equal(expectedNumbers, set.elements));

Meta