74 cout <<
"[" << ien.
start() <<
".." << ien.
end() <<
"]";
89 for (; ien != ien_end; ++ien)
92 cout <<
"[" << (*ien).first <<
".." << (*ien).second <<
"]";
103 for (; ien != ien_end; ++ien)
109 ien.
go_to(105,
false);
110 for (; ien != ien_end; ++ien)
117 ien.
go_to(105,
false);
118 for (; ien != ien_end; ++ien)
128 ien.
go_to(115,
true);
129 for (; ien != ien_end; ++ien)
136 ien.
go_to(1150000,
true);
143 cout <<
"EMPTY" << endl;
148 catch(std::exception& ex)
150 std::cerr << ex.what() << std::endl;
Compressed bit-vector bvector<> container, set algebraic methods, traversal iterators.
Algorithms for bit ranges and intervals.
pre-processor un-defines to avoid global space pollution (internal)
Bitvector Bit-vector container with runtime compression of bits.
void optimize(bm::word_t *temp_block=0, optmode opt_mode=opt_compress, statistics *stat=0)
Optimize memory bitvector's memory allocation.
bvector< Alloc > & set_range(size_type left, size_type right, bool value=true)
Sets all bits in the specified closed interval [left,right] Interval must be inside the bvector's siz...
forward iterator class to traverse bit-vector as ranges
size_type end() const BMNOEXCEPT
Return interval end/right as bit-vector coordinate 011110 [left..right].
bool valid() const BMNOEXCEPT
Returns true if enumerator is valid (false if traversal is done)
const pair_type & get() const BMNOEXCEPT
Get interval pair.
size_type start() const BMNOEXCEPT
Return interval start/left as bit-vector coordinate 011110 [left..right].
bool go_to(size_type pos, bool extend_start=true)
Go to inetrval at specified position Jump to position with interval. If interval is not available at ...
@ BM_GAP
GAP compression is ON.
bm::interval_enumerator< bm::bvector<> > interval_enumerator_type