ADUL
Collection of reusable C++ utilities
Loading...
Searching...
No Matches
adul::atm::BitVector< ChunkT > Class Template Reference

Vector of chunks, where in which chunk you can edit every bit. More...

#include <bitVector.hpp>

Public Member Functions

void pushChunk ()
 
void pushChunk (const ChunkT &pChunk)
 
void popChunk ()
 
ChunkT getLastChunk () const
 
ChunkT getFirstChunk () const
 
void setChunk (const uint64_t &idx, const ChunkT &pChunk)
 
ChunkT getChunk (const uint64_t &idx) const
 
void resetChunk (const uint64_t &idx)
 
void activateBit (const uint64_t &idx)
 
void clearBit (const uint64_t &idx)
 
void setBitValue (const uint64_t &idx, const bool &value)
 
bool getBit (const uint64_t &idx) const
 
void setChunksVector (const std::vector< ChunkT > &pVector)
 
std::vector< ChunkT > getChunksVector () const
 
void clearChunksVector ()
 
bool isEmpty () const
 
uint64_t oneChunkSize () const
 
uint64_t chunksVectorSize () const
 
uint64_t chunksVectorMaxSize () const
 
uint64_t chunksVectorCapacity () const
 
void chunksVectorReserve (const uint64_t &pCapacity)
 
void chunksVectorShrinkToFit ()
 
void chunksVectorResize (const uint64_t &pCapacity)
 
uint64_t bitsSize () const
 
uint64_t bitsMaxSize () const
 
uint64_t bitsCapacity () const
 
void swap (BitVector< ChunkT > &that) noexcept
 
bool isEqualTo (const adul::atm::BitVector< ChunkT > &that) const
 

Detailed Description

template<typename ChunkT = int8_t>
class adul::atm::BitVector< ChunkT >

Vector of chunks, where in which chunk you can edit every bit.

It's in fact just a basic wrapper for std::vector<ChunkT> with additional functions for bits manipulation
elements always must be unsigned integers
Every Chunk is just an element of source vector "dataChunks"

Template Parameters
ChunkTrepresents the type of every vector element type

ChunkT must be unsigned integer type
it defines the size of every Chunk

Member Function Documentation

◆ activateBit()

template<typename ChunkT = int8_t>
void adul::atm::BitVector< ChunkT >::activateBit ( const uint64_t & idx)

◆ bitsCapacity()

template<typename ChunkT = int8_t>
uint64_t adul::atm::BitVector< ChunkT >::bitsCapacity ( ) const

◆ bitsMaxSize()

template<typename ChunkT = int8_t>
uint64_t adul::atm::BitVector< ChunkT >::bitsMaxSize ( ) const

◆ bitsSize()

template<typename ChunkT = int8_t>
uint64_t adul::atm::BitVector< ChunkT >::bitsSize ( ) const

◆ chunksVectorCapacity()

template<typename ChunkT = int8_t>
uint64_t adul::atm::BitVector< ChunkT >::chunksVectorCapacity ( ) const

◆ chunksVectorMaxSize()

template<typename ChunkT = int8_t>
uint64_t adul::atm::BitVector< ChunkT >::chunksVectorMaxSize ( ) const

◆ chunksVectorReserve()

template<typename ChunkT = int8_t>
void adul::atm::BitVector< ChunkT >::chunksVectorReserve ( const uint64_t & pCapacity)

◆ chunksVectorResize()

template<typename ChunkT = int8_t>
void adul::atm::BitVector< ChunkT >::chunksVectorResize ( const uint64_t & pCapacity)

◆ chunksVectorShrinkToFit()

template<typename ChunkT = int8_t>
void adul::atm::BitVector< ChunkT >::chunksVectorShrinkToFit ( )

◆ chunksVectorSize()

template<typename ChunkT = int8_t>
uint64_t adul::atm::BitVector< ChunkT >::chunksVectorSize ( ) const

◆ clearBit()

template<typename ChunkT = int8_t>
void adul::atm::BitVector< ChunkT >::clearBit ( const uint64_t & idx)

◆ clearChunksVector()

template<typename ChunkT = int8_t>
void adul::atm::BitVector< ChunkT >::clearChunksVector ( )

◆ getBit()

template<typename ChunkT = int8_t>
bool adul::atm::BitVector< ChunkT >::getBit ( const uint64_t & idx) const

◆ getChunk()

template<typename ChunkT = int8_t>
ChunkT adul::atm::BitVector< ChunkT >::getChunk ( const uint64_t & idx) const

◆ getChunksVector()

template<typename ChunkT = int8_t>
std::vector< ChunkT > adul::atm::BitVector< ChunkT >::getChunksVector ( ) const

◆ getFirstChunk()

template<typename ChunkT = int8_t>
ChunkT adul::atm::BitVector< ChunkT >::getFirstChunk ( ) const

◆ getLastChunk()

template<typename ChunkT = int8_t>
ChunkT adul::atm::BitVector< ChunkT >::getLastChunk ( ) const

◆ isEmpty()

template<typename ChunkT = int8_t>
bool adul::atm::BitVector< ChunkT >::isEmpty ( ) const

◆ isEqualTo()

template<typename ChunkT = int8_t>
bool adul::atm::BitVector< ChunkT >::isEqualTo ( const adul::atm::BitVector< ChunkT > & that) const

◆ oneChunkSize()

template<typename ChunkT = int8_t>
uint64_t adul::atm::BitVector< ChunkT >::oneChunkSize ( ) const

◆ popChunk()

template<typename ChunkT = int8_t>
void adul::atm::BitVector< ChunkT >::popChunk ( )

◆ pushChunk() [1/2]

template<typename ChunkT = int8_t>
void adul::atm::BitVector< ChunkT >::pushChunk ( )

◆ pushChunk() [2/2]

template<typename ChunkT = int8_t>
void adul::atm::BitVector< ChunkT >::pushChunk ( const ChunkT & pChunk)

◆ resetChunk()

template<typename ChunkT = int8_t>
void adul::atm::BitVector< ChunkT >::resetChunk ( const uint64_t & idx)

◆ setBitValue()

template<typename ChunkT = int8_t>
void adul::atm::BitVector< ChunkT >::setBitValue ( const uint64_t & idx,
const bool & value )

◆ setChunk()

template<typename ChunkT = int8_t>
void adul::atm::BitVector< ChunkT >::setChunk ( const uint64_t & idx,
const ChunkT & pChunk )

◆ setChunksVector()

template<typename ChunkT = int8_t>
void adul::atm::BitVector< ChunkT >::setChunksVector ( const std::vector< ChunkT > & pVector)

◆ swap()

template<typename ChunkT = int8_t>
void adul::atm::BitVector< ChunkT >::swap ( BitVector< ChunkT > & that)
noexcept

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