Public Member Functions | Public Attributes

SparseBitVect Class Reference

a class for bit vectors that are sparsely occupied. More...

#include <SparseBitVect.h>

Inheritance diagram for SparseBitVect:
BitVect

List of all members.

Public Member Functions

 SparseBitVect ()
 SparseBitVect (unsigned int size)
 initialize with a particular size;
 SparseBitVect (const SparseBitVect &other)
 copy constructor
 SparseBitVect (const std::string &)
 construct from a string pickle
 SparseBitVect (const char *data, const unsigned int dataLen)
 construct from a text pickle
SparseBitVectoperator= (const SparseBitVect &)
 ~SparseBitVect ()
bool operator[] (const unsigned int which) const
SparseBitVect operator| (const SparseBitVect &) const
SparseBitVect operator& (const SparseBitVect &) const
SparseBitVect operator^ (const SparseBitVect &) const
SparseBitVect operator~ () const
const IntSetgetBitSet () const
 returns a (const) pointer to our raw storage
unsigned int getNumBits () const
 returns the number of bits (the length of the BitVect)
bool setBit (const unsigned int which)
 sets a particular bit and returns its original value
bool setBit (const IntSetIter which)
bool unsetBit (const unsigned int which)
 unsets a particular bit and returns its original value
bool getBit (const unsigned int which) const
 returns the value of a particular bit
bool getBit (const IntVectIter which) const
bool getBit (const IntSetIter which) const
unsigned int getNumOnBits () const
 returns the number of on bits
unsigned int getNumOffBits () const
 returns the number of off bits
std::string toString () const
 returns a serialized (pickled) version of this BitVect
void getOnBits (IntVect &v) const
 replaces the contents of v with indices of our on bits
void clearBits ()
 clears (sets to off) all of our bits
bool operator== (const SparseBitVect &o) const
bool operator!= (const SparseBitVect &o) const

Public Attributes

IntSetdp_bits
 our raw data, exposed for the sake of efficiency

Detailed Description

a class for bit vectors that are sparsely occupied.

SparseBitVect objects store only their on bits, in an std::set.

They are, as you might expect, quite memory efficient for sparsely populated vectors but become rather a nightmare if they need to be negated.

Definition at line 35 of file SparseBitVect.h.


Constructor & Destructor Documentation

SparseBitVect::SparseBitVect (  )  [inline]

Definition at line 37 of file SparseBitVect.h.

SparseBitVect::SparseBitVect ( unsigned int  size  )  [inline, explicit]

initialize with a particular size;

Definition at line 39 of file SparseBitVect.h.

SparseBitVect::SparseBitVect ( const SparseBitVect other  )  [inline]

copy constructor

Definition at line 42 of file SparseBitVect.h.

References dp_bits, and getNumBits().

SparseBitVect::SparseBitVect ( const std::string &   ) 

construct from a string pickle

SparseBitVect::SparseBitVect ( const char *  data,
const unsigned int  dataLen 
)

construct from a text pickle

SparseBitVect::~SparseBitVect (  )  [inline]

Definition at line 54 of file SparseBitVect.h.

References dp_bits.


Member Function Documentation

void SparseBitVect::clearBits (  )  [inline, virtual]

clears (sets to off) all of our bits

Implements BitVect.

Definition at line 79 of file SparseBitVect.h.

bool SparseBitVect::getBit ( const unsigned int  which  )  const [virtual]

returns the value of a particular bit

Implements BitVect.

bool SparseBitVect::getBit ( const IntVectIter  which  )  const
bool SparseBitVect::getBit ( const IntSetIter  which  )  const
const IntSet* SparseBitVect::getBitSet (  )  const [inline]

returns a (const) pointer to our raw storage

Definition at line 63 of file SparseBitVect.h.

References dp_bits.

unsigned int SparseBitVect::getNumBits (  )  const [inline, virtual]

returns the number of bits (the length of the BitVect)

Implements BitVect.

Definition at line 65 of file SparseBitVect.h.

Referenced by SparseBitVect().

unsigned int SparseBitVect::getNumOffBits (  )  const [inline, virtual]

returns the number of off bits

Implements BitVect.

Definition at line 74 of file SparseBitVect.h.

References dp_bits.

unsigned int SparseBitVect::getNumOnBits (  )  const [inline, virtual]

returns the number of on bits

Implements BitVect.

Definition at line 73 of file SparseBitVect.h.

References dp_bits.

void SparseBitVect::getOnBits ( IntVect v  )  const [virtual]

replaces the contents of v with indices of our on bits

Implements BitVect.

bool SparseBitVect::operator!= ( const SparseBitVect o  )  const [inline]

Definition at line 85 of file SparseBitVect.h.

References dp_bits.

SparseBitVect SparseBitVect::operator& ( const SparseBitVect  )  const
SparseBitVect& SparseBitVect::operator= ( const SparseBitVect  ) 
bool SparseBitVect::operator== ( const SparseBitVect o  )  const [inline]

Definition at line 82 of file SparseBitVect.h.

References dp_bits.

bool SparseBitVect::operator[] ( const unsigned int  which  )  const [virtual]

Implements BitVect.

SparseBitVect SparseBitVect::operator^ ( const SparseBitVect  )  const
SparseBitVect SparseBitVect::operator| ( const SparseBitVect  )  const
SparseBitVect SparseBitVect::operator~ (  )  const
bool SparseBitVect::setBit ( const unsigned int  which  )  [virtual]

sets a particular bit and returns its original value

Implements BitVect.

bool SparseBitVect::setBit ( const IntSetIter  which  ) 
std::string SparseBitVect::toString (  )  const [virtual]

returns a serialized (pickled) version of this BitVect

Implements BitVect.

bool SparseBitVect::unsetBit ( const unsigned int  which  )  [virtual]

unsets a particular bit and returns its original value

Implements BitVect.


Member Data Documentation

our raw data, exposed for the sake of efficiency

Definition at line 79 of file SparseBitVect.h.

Referenced by getBitSet(), getNumOffBits(), getNumOnBits(), operator!=(), operator==(), SparseBitVect(), and ~SparseBitVect().


The documentation for this class was generated from the following file: