BitMagic-C++
Public Types | Public Member Functions
bm::bvector< Alloc >::counted_enumerator Class Reference

Constant iterator designed to enumerate "ON" bits counted_enumerator keeps bitcount, ie number of ON bits starting from the position 0 in the bit string up to the currently enumerated bit. More...

#include <bm.h>

Inheritance diagram for bm::bvector< Alloc >::counted_enumerator:
Inheritance graph
[legend]
Collaboration diagram for bm::bvector< Alloc >::counted_enumerator:
Collaboration graph
[legend]

Public Types

typedef std::input_iterator_tag iterator_category
 
- Public Types inherited from bm::bvector< Alloc >::enumerator
typedef std::input_iterator_tag iterator_category
 
typedef size_type value_type
 
typedef unsigned difference_type
 
typedef unsigned * pointer
 
typedef unsigned & reference
 

Public Member Functions

 counted_enumerator ()
 
 counted_enumerator (const enumerator &en)
 
counted_enumeratoroperator= (const enumerator &en)
 
counted_enumeratoroperator++ ()
 
counted_enumerator operator++ (int)
 
size_type count () const
 Number of bits ON starting from the . More...
 
- Public Member Functions inherited from bm::bvector< Alloc >::enumerator
 enumerator ()
 
 enumerator (const bvector< Alloc > *bv)
 Construct enumerator associated with a vector. This construction creates unpositioned iterator with status valid() == false. It can be re-positioned using go_first() or go_to() More...
 
 enumerator (const bvector< Alloc > *bv, size_type pos)
 Construct enumerator for bit vector. More...
 
size_type operator* () const
 Get current position (value) More...
 
size_type value () const
 Get current position (value) More...
 
enumeratoroperator++ ()
 Advance enumerator forward to the next available bit. More...
 
enumerator operator++ (int)
 Advance enumerator forward to the next available bit. Possibly do NOT use this operator it is slower than the pre-fix increment. More...
 
void go_first ()
 Position enumerator to the first available bit. More...
 
void advance ()
 advance iterator forward by one More...
 
enumeratorgo_up ()
 Advance enumerator to the next available bit. More...
 
enumeratorskip_to_rank (size_type rank)
 Skip to specified relative rank. More...
 
enumeratorskip (size_type rank)
 Skip specified number of bits from enumeration. More...
 
enumeratorgo_to (size_type pos)
 go to a specific position in the bit-vector (or next) More...
 
- Public Member Functions inherited from bm::bvector< Alloc >::iterator_base
 iterator_base ()
 
bool operator== (const iterator_base &it) const
 
bool operator!= (const iterator_base &it) const
 
bool operator< (const iterator_base &it) const
 
bool operator<= (const iterator_base &it) const
 
bool operator> (const iterator_base &it) const
 
bool operator>= (const iterator_base &it) const
 
bool valid () const
 Checks if iterator is still valid. Analog of != 0 comparison for pointers. More...
 
void invalidate ()
 Turns iterator into an invalid state. More...
 
bool compare_state (const iterator_base &ib) const
 Compare FSMs for testing purposes. More...
 

Additional Inherited Members

- Protected Attributes inherited from bm::bvector< Alloc >::iterator_base
bm::bvector< Alloc > * bv_
 Pointer on parent bitvector. More...
 
size_type position_
 Bit position (bit idx) More...
 
const bm::word_tblock_
 Block pointer.(NULL-invalid) More...
 
unsigned block_type_
 Type of block. 0-Bit, 1-GAP. More...
 
block_idx_type block_idx_
 Block index. More...
 
union bm::bvector::iterator_base::block_descr bdescr_
 

Detailed Description

template<class Alloc>
class bm::bvector< Alloc >::counted_enumerator

Constant iterator designed to enumerate "ON" bits counted_enumerator keeps bitcount, ie number of ON bits starting from the position 0 in the bit string up to the currently enumerated bit.

When increment operator called current position is increased by 1.

Examples
sample11.cpp.

Definition at line 1139 of file bm.h.

Member Typedef Documentation

◆ iterator_category

template<class Alloc >
typedef std::input_iterator_tag bm::bvector< Alloc >::counted_enumerator::iterator_category

Definition at line 1143 of file bm.h.

Constructor & Destructor Documentation

◆ counted_enumerator() [1/2]

template<class Alloc >
bm::bvector< Alloc >::counted_enumerator::counted_enumerator ( )
inline

Definition at line 1145 of file bm.h.

◆ counted_enumerator() [2/2]

template<class Alloc >
bm::bvector< Alloc >::counted_enumerator::counted_enumerator ( const enumerator en)
inline

Definition at line 1147 of file bm.h.

References bm::bvector< Alloc >::iterator_base::valid().

Member Function Documentation

◆ count()

template<class Alloc >
size_type bm::bvector< Alloc >::counted_enumerator::count ( ) const
inline

Number of bits ON starting from the .

Method returns number of ON bits fromn the bit 0 to the current bit For the first bit in bitvector it is 1, for the second 2

Examples
sample11.cpp.

Definition at line 1184 of file bm.h.

Referenced by bv_counted_enumerator().

◆ operator++() [1/2]

template<class Alloc >
counted_enumerator& bm::bvector< Alloc >::counted_enumerator::operator++ ( )
inline

◆ operator++() [2/2]

template<class Alloc >
counted_enumerator bm::bvector< Alloc >::counted_enumerator::operator++ ( int  )
inline

◆ operator=()

template<class Alloc >
counted_enumerator& bm::bvector< Alloc >::counted_enumerator::operator= ( const enumerator en)
inline

Definition at line 1153 of file bm.h.

References bm::bvector< Alloc >::iterator_base::valid().


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