
Jeffrey Bosboom wrote:
I almost exclusively use this structure in a way that interval nodes represent sequences of 1 bits, but it can just as easily be used the other way around, where intervals represent sequences of 0 bits. In fact now that I think about it probably doesn't even matter.
Since it will use less space if the bitset is sparse with occasional 0 or 1 bits, this sounds like a good choice for a nontype template parameter. Obviously the user could just invert the sense of the bits themselves (instead of representing presence in a set, it could represent "lack of absence"), but a template parameter would be more user-friendly. A converting constructor could be provided for converting between the two.
Surely the number of runs of 0s differs from the number of runs of 1s by at most 1, so inverting the meaning will only gain you a negligible benefit? John Bytheway