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 () BMNOEXCEPT
 
 counted_enumerator (const enumerator &en) BMNOEXCEPT
 
counted_enumeratoroperator= (const enumerator &en) BMNOEXCEPT
 
counted_enumeratoroperator++ () BMNOEXCEPT
 
counted_enumerator operator++ (int)
 
size_type count () const BMNOEXCEPT
 Number of bits ON starting from the . More...
 
- Public Member Functions inherited from bm::bvector< Alloc >::enumerator
 enumerator () BMNOEXCEPT
 
 enumerator (const bvector< Alloc > *bv) BMNOEXCEPT
 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=0) BMNOEXCEPT
 Construct enumerator for bit vector. More...
 
 enumerator (const bvector< Alloc > *bv, size_type pos) BMNOEXCEPT
 Construct enumerator for bit vector. More...
 
size_type operator* () const BMNOEXCEPT
 Get current position (value) More...
 
size_type value () const BMNOEXCEPT
 Get current position (value) More...
 
enumeratoroperator++ () BMNOEXCEPT
 Advance enumerator forward to the next available bit. More...
 
enumerator operator++ (int) BMNOEXCEPT
 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 () BMNOEXCEPT
 Position enumerator to the first available bit. More...
 
bool advance () BMNOEXCEPT
 
bool go_up () BMNOEXCEPT
 Advance enumerator to the next available bit. More...
 
bool skip_to_rank (size_type rank) BMNOEXCEPT
 Skip to specified relative rank. More...
 
bool skip (size_type rank) BMNOEXCEPT
 Skip specified number of bits from enumeration. More...
 
bool go_to (size_type pos) BMNOEXCEPT
 go to a specific position in the bit-vector (or next) More...
 
- Public Member Functions inherited from bm::bvector< Alloc >::iterator_base
 iterator_base () BMNOEXCEPT
 
bool operator== (const iterator_base &it) const BMNOEXCEPT
 
bool operator!= (const iterator_base &it) const BMNOEXCEPT
 
bool operator< (const iterator_base &it) const BMNOEXCEPT
 
bool operator<= (const iterator_base &it) const BMNOEXCEPT
 
bool operator> (const iterator_base &it) const BMNOEXCEPT
 
bool operator>= (const iterator_base &it) const BMNOEXCEPT
 
bool valid () const BMNOEXCEPT
 Checks if iterator is still valid. Analog of != 0 comparison for pointers. More...
 
void invalidate () BMNOEXCEPT
 Turns iterator into an invalid state. More...
 
bool compare_state (const iterator_base &ib) const BMNOEXCEPT
 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 729 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 733 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 735 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 737 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 771 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 742 of file bm.h.

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


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