#include <bitVector.h>
Type Definitions and Constants | |
typedef unsigned char | BlockType |
typedef std::vector< BlockType > | VectorType |
const Size | BlockSize |
Storers | |
virtual void | read (std::istream &s) throw (Exception::OutOfMemory) |
Read the values of of type bool from an istream. | |
virtual void | write (std::ostream &s) const throw () |
Write the values of of type bool to an ostream. | |
virtual void | write (PersistenceManager &pm) const throw () |
Storable write method. | |
virtual bool | read (PersistenceManager &pm) throw (Exception::OutOfMemory) |
Storable read method. | |
BALL_EXPORT friend std::istream & | operator>> (std::istream &s, BitVector &bit_vector) throw (Exception::OutOfMemory) |
Input operator. | |
BALL_EXPORT friend std::ostream & | operator<< (std::ostream &s, const BitVector &bit_vector) throw () |
Output operator. | |
Public Member Functions | |
Constructors and Destructors | |
BitVector () throw () | |
Default constructor. | |
BitVector (Size size) throw (Exception::OutOfMemory) | |
Detailled constructor. | |
BitVector (const BitVector &bit_vector) throw (Exception::OutOfMemory) | |
Copy constructor. | |
BitVector (const char *bit_string) throw (Exception::OutOfMemory) | |
Detailled constructor from an array of char. | |
virtual | ~BitVector () throw () |
Destructor. | |
void | clear () throw () |
Clear method. | |
Assignment | |
void | set (const BitVector &bit_vector) throw (Exception::OutOfMemory) |
Assignment from an other BitVector instance. | |
void | set (const char *bit_string) throw (Exception::OutOfMemory) |
Assignment from a char string. | |
BitVector & | operator= (const BitVector &bit_vector) throw (Exception::OutOfMemory) |
Assignment from an other BitVector instance. | |
BitVector & | operator= (const char *bit_string) throw (Exception::OutOfMemory) |
Assignment from a char string. | |
void | get (BitVector &bitvector) const throw (Exception::OutOfMemory) |
Assignment to an other BitVector. | |
Accessors | |
BitVector | operator() (Index first, Index last) const throw (Exception::IndexUnderflow, Exception::IndexOverflow) |
Return a sub-BitVector. | |
void | setSize (Size size, bool keep=true) throw (Exception::OutOfMemory) |
Set the size of this instance. | |
Size | getSize () const throw () |
Return the size of this instance. | |
Size | countValue (bool value) const throw () |
Count a given bool value in this instance. | |
VectorType & | getBitSet () throw () |
Return a muteable pointer to the values of this instance. | |
const VectorType & | getBitSet () const throw () |
Return a constant pointer to the values of this instance. | |
Bit | operator[] (Index index) throw (Exception::OutOfMemory) |
Random access to the components. | |
bool | operator[] (Index index) const throw (Exception::IndexUnderflow, Exception::IndexOverflow) |
Constant random access to the components. | |
void | setBit (Index index, bool value=true) throw (Exception::IndexUnderflow, Exception::OutOfMemory) |
Set the given Bit. | |
bool | getBit (Index index) throw (Exception::IndexUnderflow, Exception::OutOfMemory) |
Get the value of an element. | |
bool | getBit (Index index) const throw (Exception::IndexUnderflow, Exception::IndexOverflow) |
Get the value of an element (const version). | |
void | toggleBit (Index index) throw (Exception::IndexUnderflow, Exception::OutOfMemory) |
Toggle the value of an element. | |
void | fill (bool value=true, Index first=0, Index last=-1) throw (Exception::IndexUnderflow, Exception::OutOfMemory) |
Fill a part of this instance with a given value. | |
void | toggle (Index first=0, Index last=-1) throw (Exception::IndexUnderflow, Exception::OutOfMemory) |
Toggle the values of a part of this instance. | |
void | setUnsignedChar (unsigned char bit_pattern) throw () |
Set a unsigned char as the bit pattern. | |
unsigned char | getUnsignedChar () const throw () |
Get the bit pattern as unsigned char. | |
void | setUnsignedShort (unsigned short bit_pattern) throw () |
Set a unsigned short as the bit pattern. | |
unsigned short | getUnsignedShort () const throw () |
Get the bit pattern as unsigned short. | |
void | setUnsignedInt (unsigned int bit_pattern) throw () |
Set a unsigned int as the bit pattern. | |
unsigned int | getUnsignedInt () const throw () |
Get the bit pattern as unsigned int. | |
void | setUnsignedLong (unsigned long bit_pattern) throw () |
Set a unsigned long as the bit pattern. | |
unsigned long | getUnsignedLong () const throw () |
Get the bit pattern as unsigned long. | |
void | bitwiseOr (const BitVector &bit_vector) throw (Exception::OutOfMemory) |
Compute {this or bit_vector}. | |
void | bitwiseXor (const BitVector &bit_vector) throw (Exception::OutOfMemory) |
Compute {this xor bit_vector}. | |
void | bitwiseAnd (const BitVector &bit_vector) throw (Exception::OutOfMemory) |
Compute {this and bit_vector}. | |
BitVector | operator| (const BitVector &bit_vector) throw (Exception::OutOfMemory) |
Or Operator. | |
BitVector & | operator|= (const BitVector &bit_vector) throw (Exception::OutOfMemory) |
Compute {this or bit_vector}. | |
BitVector | operator & (const BitVector &bit_vector) throw (Exception::OutOfMemory) |
And Operator. | |
BitVector & | operator &= (const BitVector &bit_vector) throw (Exception::OutOfMemory) |
Compute {this and bit_vector}. | |
BitVector | operator^ (const BitVector &bit_vector) throw (Exception::OutOfMemory) |
Xor Operator. | |
BitVector & | operator^= (const BitVector &bit_vector) throw (Exception::OutOfMemory) |
Compute {this xor bit_vector}. | |
BitVector | operator~ () throw (Exception::OutOfMemory) |
Negate Operator. | |
Predicates | |
bool | operator== (const BitVector &bit_vector) const throw () |
Equality operator. | |
bool | operator!= (const BitVector &bit_vector) const throw () |
Inequality operator. | |
bool | isAnyBit (bool value, Index first=0, Index last=-1) const throw (Exception::IndexUnderflow, Exception::IndexOverflow) |
Test if any bit in a given range has the given value. | |
bool | isEveryBit (bool value, Index first=0, Index last=-1) const throw (Exception::IndexUnderflow, Exception::IndexOverflow) |
Test if every bit in a given range has the given value. | |
Debugging and Diagnostics | |
bool | isValid () const throw () |
Test if this instance is valid. | |
Protected Member Functions | |
void | validateIndex_ (Index &index) throw (Exception::IndexUnderflow, Exception::OutOfMemory) |
void | validateIndex_ (Index &index) const throw (Exception::IndexUnderflow, Exception::IndexOverflow) |
void | validateRange_ (Index &first, Index &last) const throw (Exception::IndexUnderflow, Exception::IndexOverflow) |
Indices may be given as negative arguments: start from the end -1 therefore means the last bit. Some functions resize the instance if a index greater than the size of the instance is given. Other functions throw exception in this case.
|
Detailled constructor from an array of char. {Caveat:} the array of char has to be zero-terminated! |
|
Compute {this and bit_vector}. The result is saved in this instance. |
|
Compute {this or bit_vector}. The result is saved in this instance. |
|
Compute {this xor bit_vector}. The result is saved in this instance. |
|
Clear method. This method will set the size of this instance to 0. |
|
Count a given bool value in this instance.
|
|
Fill a part of this instance with a given value. If a given index is greater than the size of this instance an exception is thrown.
|
|
Get the value of an element (const version). If the given index is greater than the size of this instance an exception is thrown. No resizing is done.
|
|
Get the value of an element. If the given index is greater than the size of this instance, this BitVector is increased to the given index.
|
|
Return a constant pointer to the values of this instance.
|
|
Return a muteable pointer to the values of this instance.
|
|
Return the size of this instance.
|
|
Get the bit pattern as unsigned char. For example: 00010110 => 22.
|
|
Get the bit pattern as unsigned int.
|
|
Get the bit pattern as unsigned long.
|
|
Get the bit pattern as unsigned short.
|
|
Test if any bit in a given range has the given value.
|
|
Test if every bit in a given range has the given value.
|
|
Test if this instance is valid.
|
|
And Operator. Creates a new BitVector object and fills it with the result of {this and bit_Vector}. |
|
Compute {this and bit_vector}. The result is saved in this instance. |
|
Return a sub-BitVector. A new BitVector is created and filled with elements of this instance.
|
|
Assignment from a char string. If a char is different from '0', it is interpreted as true. |
|
Constant random access to the components. If the given index is greater than the size of this instance an exception is thrown.
|
|
Random access to the components. If the given index is greater than the size of this instance, this BitVector is increased to the given index. |
|
Xor Operator. Creates a new BitVector object and fills it with the result of {this Xor bit_vector}. |
|
Compute {this xor bit_vector}. The result is saved in this instance. |
|
Or Operator. Creates a new BitVector object and fills it with the result of {this or bit_Vector}. |
|
Compute {this or bit_vector}. The result is saved in this instance. |
|
Negate Operator. Creates a new BitVector object and fills it with the negate result of this instance. |
|
Storable read method.
|
|
Read the values of of type bool from an istream.
|
|
Assignment from a char string. If a char is different from '0', it is interpreted as true. {Caveat:} the array of char has to be zero-terminated! |
|
Set the given Bit. The element at the given position is set to the given value. If the given index is greater than the size of this instance, this BitVector is increased to the given index.
|
|
Set the size of this instance.
|
|
Set a unsigned char as the bit pattern. For example: 22 => 00010110.
|
|
Set a unsigned int as the bit pattern.
|
|
Set a unsigned long as the bit pattern.
|
|
Set a unsigned short as the bit pattern.
|
|
Toggle the values of a part of this instance. If a given index is greater than the size of this instance an exception is thrown.
|
|
Toggle the value of an element. If the given index is greater than the size of this instance an exception is thrown.
|
|
Storable write method.
|
|
Write the values of of type bool to an ostream.
|
|
Output operator. Writes the values of type bool to an ostream. |
|
Input operator. Reads the values of type bool from an istream. |