libUTL++
|
Array of n-bit values. More...
#include <BitArray.h>
Public Member Functions | |
BitArray (uint64_t size, uint_t numBits=1) | |
Constructor. More... | |
virtual size_t | innerAllocatedSize () const |
Get the "inner" allocated size. More... | |
virtual int | compare (const Object &rhs) const |
Compare with another object. More... | |
virtual void | copy (const Object &rhs) |
Copy another instance. More... | |
virtual void | steal (Object &rhs) |
"Steal" the internal representation from another instance. More... | |
virtual void | dump (Stream &os, uint_t level=uint_t_max) const |
Dump a human-readable representation of self to the given output stream. More... | |
virtual void | serialize (Stream &stream, uint_t io, uint_t mode=ser_default) |
Serialize to or from a stream. More... | |
void | initialize (uint64_t size, uint_t numBits=1) |
Initialize the array. More... | |
uint64_t | size () const |
Get the array size. More... | |
void | grow (uint64_t size) |
Grow to the given size. More... | |
void | setSize (uint64_t size) |
Change the size. More... | |
uint64_t | get (uint64_t pos) const |
Get the value at the given position. More... | |
void | set (uint64_t idx, uint64_t val) |
Set the value at the given index. More... | |
void | setAll (uint64_t val) |
Set all values the same. More... | |
uint64_t | operator[] (uint_t idx) const |
Return the value at the given index. More... | |
uint64_t | operator[] (int idx) const |
Return the value at the given index. More... | |
uint64_t | operator[] (uint64_t idx) const |
Return the value at the given index. More... | |
uint64_t | operator[] (int64_t idx) const |
Return the value at the given index. More... | |
BitArrayElem | operator[] (uint_t idx) |
Return a BitArrayElem for the given index. More... | |
BitArrayElem | operator[] (int idx) |
Return a BitArrayElem for the given index. More... | |
BitArrayElem | operator[] (uint64_t idx) |
Return a BitArrayElem for the given index. More... | |
BitArrayElem | operator[] (int64_t idx) |
Return a BitArrayElem for the given index. More... | |
Public Member Functions inherited from utl::Object | |
void | clear () |
Revert to initial state. More... | |
virtual void | vclone (const Object &rhs) |
Make an exact copy of another instance. More... | |
void | dumpWithClassName (Stream &os, uint_t indent=4, uint_t level=uint_t_max) const |
Front-end for dump() that prints the object's class name. More... | |
virtual const Object & | getKey () const |
Get the key for this object. More... | |
bool | hasKey () const |
Determine whether or not the object has a key. More... | |
virtual const Object & | getProxiedObject () const |
Get the proxied object (= self if none). More... | |
virtual Object & | getProxiedObject () |
Get the proxied object (= self if none). More... | |
virtual size_t | hash (size_t size) const |
Get the hash code for the object. More... | |
bool | _isA (const RunTimeClass *runTimeClass) const |
Determine whether self's class is a descendent of the given class. More... | |
virtual String | toString () const |
Return a string representation of self. More... | |
operator String () const | |
Conversion to String. More... | |
size_t | allocatedSize () const |
Get the total allocated size of this object. More... | |
virtual void | addOwnedIt (const class FwdIt *it) const |
Notify self that it owns the given iterator. More... | |
virtual void | removeOwnedIt (const class FwdIt *it) const |
Notify self that the given owned iterator has been destroyed. More... | |
bool | operator< (const Object &rhs) const |
Less-than operator. More... | |
bool | operator<= (const Object &rhs) const |
Less-than-or-equal-to operator. More... | |
bool | operator> (const Object &rhs) const |
Greater-than operator. More... | |
bool | operator>= (const Object &rhs) const |
Greater-than-or-equal-to operator. More... | |
bool | operator== (const Object &rhs) const |
Equal-to operator. More... | |
bool | operator!= (const Object &rhs) const |
Unequal-to operator. More... | |
void | serializeIn (Stream &is, uint_t mode=ser_default) |
Serialize from an input stream. More... | |
void | serializeOut (Stream &os, uint_t mode=ser_default) const |
Serialize to an output stream. More... | |
void | serializeOutBoxed (Stream &os, uint_t mode=ser_default) const |
Serialize a boxed object to an output stream. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from utl::Object | |
static Object * | serializeInNullable (Stream &is, uint_t mode=ser_default) |
Serialize a nullptr-able object from an input stream. More... | |
static void | serializeOutNullable (const Object *object, Stream &os, uint_t mode=ser_default) |
Serialize a nullptr-able object to an output stream. More... | |
static void | serializeNullable (Object *&object, Stream &stream, uint_t io, uint_t mode=ser_default) |
Serialize a nullptr-able object to or from a stream. More... | |
static Object * | serializeInBoxed (Stream &is, uint_t mode=ser_default) |
Serialize a boxed object from an input stream. More... | |
static void | serializeBoxed (Object *&object, Stream &stream, uint_t io, uint_t mode=ser_default) |
Serialize a boxed object to or from a stream. More... | |
Array of n-bit values.
BitArray provides a space-efficient way to represent an array of n-bit numbers. For example, you could choose n = 1 if you'd like to store an array of boolean values without wasting memory. If you'd like to store 4-bit numbers (in the range [0,15]), you'd choose n = 4.
If n = 8, 16, 32, or 64, there's no real point in using BitArray since it won't save you any memory, but it will cost you CPU cycles. In those cases, just use the appropriate built-in type.
Thanks to BitArrayElem, you can use a BitArray much like you would a regular C-style array. Have a look at the BitArray example program.
Definition at line 36 of file BitArray.h.
Constructor.
size | initial size (number of values) |
numBits | bits per valuBe |
Definition at line 46 of file BitArray.h.
References utl::compare(), utl::copy(), utl::dump(), utl::init(), utl::ser_default, utl::serialize(), and utl::uint_t_max.
|
virtual |
Get the "inner" allocated size.
Reimplemented from utl::Object.
|
virtual |
Compare with another object.
If no overridden version succeeds in doing the comparison, then an attempt will be made to re-start the comparison process using one or both of the objects' keys. Usually, an override of compare() should call the superclass's compare() if it doesn't know how to compare itself with the rhs object.
rhs | object to compare with |
Reimplemented from utl::Object.
|
virtual |
Copy another instance.
When you override copy(), you should usually call the superclass's copy().
rhs | object to copy |
Reimplemented from utl::Object.
|
virtual |
"Steal" the internal representation from another instance.
The default implementation just calls vclone(), so you have to override this if you want a "move" capability.
Reimplemented from utl::Object.
|
virtual |
Dump a human-readable representation of self to the given output stream.
A common use of this is for debugging & testing.
os | stream to dump to |
level | level of 'verbosity' for the dump |
Reimplemented from utl::Object.
|
virtual |
Serialize to or from a stream.
This is the only virtual method for serialization. You must override this in any class that has data to be serialized, and ensure that the superclass's serialize() gets called.
stream | stream to serialize from/to |
io | see utl::io_t |
mode | see utl::serialize_t |
Reimplemented from utl::Object.
|
inline |
Get the array size.
Definition at line 71 of file BitArray.h.
|
inline |
Grow to the given size.
Definition at line 78 of file BitArray.h.
void utl::BitArray::setSize | ( | uint64_t | size | ) |
Change the size.
void utl::BitArray::setAll | ( | uint64_t | val | ) |
Set all values the same.
Return the value at the given index.
Definition at line 96 of file BitArray.h.
|
inline |
Return the value at the given index.
Definition at line 102 of file BitArray.h.
Return the value at the given index.
Definition at line 108 of file BitArray.h.
Return the value at the given index.
Definition at line 114 of file BitArray.h.
References utl::deInit(), and utl::init().
BitArrayElem utl::BitArray::operator[] | ( | uint_t | idx | ) |
Return a BitArrayElem for the given index.
BitArrayElem utl::BitArray::operator[] | ( | int | idx | ) |
Return a BitArrayElem for the given index.
BitArrayElem utl::BitArray::operator[] | ( | uint64_t | idx | ) |
Return a BitArrayElem for the given index.
BitArrayElem utl::BitArray::operator[] | ( | int64_t | idx | ) |
Return a BitArrayElem for the given index.