The indexSet stores positions of bits that are one. More...
#include <bitvector.h>
Public Member Functions | |
const word_t & | currentWord () const |
The value of the current compressed word. | |
indexSet () | |
Default constructor. | |
indexSet (const indexSet &rhs) | |
Copy constructor. | |
const word_t * | indices () const |
Pointer to the indices. | |
bool | isRange () const |
Is the index set a consecutive range? | |
word_t | nIndices () const |
Number of indices. | |
indexSet & | operator++ () |
Advance to the next code word that is not zero. More... | |
indexSet & | operator= (const indexSet &rhs) |
Assignment operator. | |
Friends | |
indexSet | ibis::bitvector::firstIndexSet () const |
The indexSet stores positions of bits that are one.
It decodes one word of the bitvector at a time. For a fill of ones, the function isRange
returns true, otherwise it returns false. If isRange returns true, the position of the first bit is pointed by the pointer returned by function indices
, and there are nIndices
consecutive ones. If isRange
returns false, there are nIndices
bits that are one and the positions of these bits are stored in the array returned by function indices
.
ibis::bitvector::indexSet & ibis::bitvector::indexSet::operator++ | ( | ) |
Advance to the next code word that is not zero.
If the current position is already at the end of the bitvector, nothing will be done by this function.