BitMagic-C++: bm::bvector< Alloc >::counted_enumerator Class Reference

BitMagic-C++

Public Types | Public Member Functions
bm::bvector< Alloc >::counted_enumerator Class Reference
BitMagic Library » bvector<> container » bvector<> iterators

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:
[legend]
Collaboration diagram for bm::bvector< Alloc >::counted_enumerator:
[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_enumerator & | operator= (const enumerator &en) BMNOEXCEPT
counted_enumerator & | operator++ () 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) 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...
enumerator & | operator++ () 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_t * | block_
| 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 715 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 719 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 721 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 723 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 757 of file bm.h.

Referenced by bv_counted_enumerator().

## ◆ operator++() [1/2]

template<class Alloc >

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

Definition at line 737 of file bm.h.

References bm::bvector< Alloc >::enumerator::go_up(), and bm::bvector< Alloc >::iterator_base::valid().

## ◆ operator++() [2/2]

template<class Alloc >

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

Definition at line 744 of file bm.h.

References bm::bvector< Alloc >::enumerator::go_up(), and bm::bvector< Alloc >::iterator_base::valid().

## ◆ operator=()

template<class Alloc >

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

Definition at line 728 of file bm.h.

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

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

- bm.h