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));
Returns a range of the elements in this set. The elements are ordered ascending.