BitMagic-C++
|
Output iterator iterator designed to set "ON" bits based on input sequence of integers. More...
#include <bm.h>
Public Types | |
typedef std::output_iterator_tag | iterator_category |
typedef bm::bvector< Alloc > | bvector_type |
typedef bvector_type::size_type | size_type |
typedef bvector_type::size_type | value_type |
typedef void | difference_type |
typedef void | pointer |
typedef void | reference |
Public Member Functions | |
bulk_insert_iterator () BMNOEXCEPT | |
~bulk_insert_iterator () | |
bulk_insert_iterator (bvector< Alloc > &bvect, bm::sort_order so=BM_UNKNOWN) BMNOEXCEPT | |
bulk_insert_iterator (const bulk_insert_iterator &iit) | |
bulk_insert_iterator (const insert_iterator &iit) | |
bulk_insert_iterator (bulk_insert_iterator &&iit) BMNOEXCEPT | |
bulk_insert_iterator & | operator= (const bulk_insert_iterator &ii) |
bulk_insert_iterator & | operator= (bulk_insert_iterator &&ii) BMNOEXCEPT |
bulk_insert_iterator & | operator= (size_type n) |
bulk_insert_iterator & | operator* () |
bulk_insert_iterator & | operator++ () |
bulk_insert_iterator & | operator++ (int) |
void | flush () |
bvector_type * | get_bvector () const BMNOEXCEPT |
Static Protected Member Functions | |
static size_type | buf_size_max () BMNOEXCEPT |
Protected Attributes | |
bvector_type * | bvect_ |
target bvector | |
size_type * | buf_ |
bulk insert buffer | |
size_type | buf_size_ |
current buffer size | |
bm::sort_order | sorted_ |
sort order hint | |
Output iterator iterator designed to set "ON" bits based on input sequence of integers.
STL container can be converted to bvector using this iterator Insert iterator guarantees the vector will be dynamically resized (set_bit does not do that).
The difference from the canonical insert iterator, is that bulk insert implements internal buffering, which needs to flushed (or flushed automatically when goes out of scope). Buffering creates a delayed effect, which needs to be taken into account.
typedef bm::bvector<Alloc> bm::bvector< Alloc >::bulk_insert_iterator::bvector_type |
typedef void bm::bvector< Alloc >::bulk_insert_iterator::difference_type |
typedef std::output_iterator_tag bm::bvector< Alloc >::bulk_insert_iterator::iterator_category |
typedef void bm::bvector< Alloc >::bulk_insert_iterator::pointer |
typedef void bm::bvector< Alloc >::bulk_insert_iterator::reference |
typedef bvector_type::size_type bm::bvector< Alloc >::bulk_insert_iterator::size_type |
typedef bvector_type::size_type bm::bvector< Alloc >::bulk_insert_iterator::value_type |
|
inline |
|
inline |
Definition at line 477 of file bm.h.
References bm::bvector< Alloc >::bulk_insert_iterator::buf_, bm::bvector< Alloc >::bulk_insert_iterator::bvect_, and bm::bvector< Alloc >::bulk_insert_iterator::flush().
|
inline |
Definition at line 484 of file bm.h.
References bm::bvector< Alloc >::bulk_insert_iterator::buf_, bm::bvector< Alloc >::bulk_insert_iterator::buf_size_, bm::bvector< Alloc >::bulk_insert_iterator::bvect_, and bm::bvector< Alloc >::init().
|
inline |
|
inline |
|
inline |
Definition at line 511 of file bm.h.
References bm::bvector< Alloc >::bulk_insert_iterator::buf_, bm::bvector< Alloc >::bulk_insert_iterator::buf_size_, and bm::bvector< Alloc >::bulk_insert_iterator::sorted_.
|
inlinestaticprotected |
Definition at line 578 of file bm.h.
References bm::set_block_size.
Referenced by bm::bvector< Alloc >::bulk_insert_iterator::operator=().
|
inline |
Flush the internal buffer into target bvector
Definition at line 563 of file bm.h.
References BM_ASSERT, bm::bvector< Alloc >::bulk_insert_iterator::buf_, bm::bvector< Alloc >::bulk_insert_iterator::buf_size_, bm::bvector< Alloc >::bulk_insert_iterator::bvect_, bm::bvector< Alloc >::import(), bm::bvector< Alloc >::bulk_insert_iterator::sorted_, and bm::bvector< Alloc >::sync_size().
Referenced by DNA_FingerprintScanner::BuildParallel(), main(), and bm::bvector< Alloc >::bulk_insert_iterator::~bulk_insert_iterator().
|
inline |
Definition at line 574 of file bm.h.
References bm::bvector< Alloc >::bulk_insert_iterator::bvect_.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 541 of file bm.h.
References BM_ASSERT, BM_ASSERT_THROW, bm::bvector< Alloc >::bulk_insert_iterator::buf_, bm::bvector< Alloc >::bulk_insert_iterator::buf_size_, bm::bvector< Alloc >::bulk_insert_iterator::buf_size_max(), bm::bvector< Alloc >::bulk_insert_iterator::bvect_, bm::id_max, bm::bvector< Alloc >::import(), and bm::bvector< Alloc >::bulk_insert_iterator::sorted_.
|
protected |
bulk insert buffer
Definition at line 589 of file bm.h.
Referenced by bm::bvector< Alloc >::bulk_insert_iterator::bulk_insert_iterator(), bm::bvector< Alloc >::bulk_insert_iterator::bulk_insert_iterator(), bm::bvector< Alloc >::bulk_insert_iterator::bulk_insert_iterator(), bm::bvector< Alloc >::bulk_insert_iterator::bulk_insert_iterator(), bm::bvector< Alloc >::bulk_insert_iterator::flush(), bm::bvector< Alloc >::bulk_insert_iterator::operator=(), bm::bvector< Alloc >::bulk_insert_iterator::operator=(), bm::bvector< Alloc >::bulk_insert_iterator::operator=(), and bm::bvector< Alloc >::bulk_insert_iterator::~bulk_insert_iterator().
|
protected |
current buffer size
Definition at line 590 of file bm.h.
Referenced by bm::bvector< Alloc >::bulk_insert_iterator::bulk_insert_iterator(), bm::bvector< Alloc >::bulk_insert_iterator::bulk_insert_iterator(), bm::bvector< Alloc >::bulk_insert_iterator::bulk_insert_iterator(), bm::bvector< Alloc >::bulk_insert_iterator::bulk_insert_iterator(), bm::bvector< Alloc >::bulk_insert_iterator::flush(), bm::bvector< Alloc >::bulk_insert_iterator::operator=(), bm::bvector< Alloc >::bulk_insert_iterator::operator=(), and bm::bvector< Alloc >::bulk_insert_iterator::operator=().
|
protected |
target bvector
Definition at line 588 of file bm.h.
Referenced by bm::bvector< Alloc >::bulk_insert_iterator::bulk_insert_iterator(), bm::bvector< Alloc >::bulk_insert_iterator::bulk_insert_iterator(), bm::bvector< Alloc >::bulk_insert_iterator::bulk_insert_iterator(), bm::bvector< Alloc >::bulk_insert_iterator::flush(), bm::bvector< Alloc >::bulk_insert_iterator::get_bvector(), bm::bvector< Alloc >::bulk_insert_iterator::operator=(), bm::bvector< Alloc >::bulk_insert_iterator::operator=(), bm::bvector< Alloc >::bulk_insert_iterator::operator=(), and bm::bvector< Alloc >::bulk_insert_iterator::~bulk_insert_iterator().
|
protected |
sort order hint
Definition at line 591 of file bm.h.
Referenced by bm::bvector< Alloc >::bulk_insert_iterator::bulk_insert_iterator(), bm::bvector< Alloc >::bulk_insert_iterator::bulk_insert_iterator(), bm::bvector< Alloc >::bulk_insert_iterator::bulk_insert_iterator(), bm::bvector< Alloc >::bulk_insert_iterator::flush(), bm::bvector< Alloc >::bulk_insert_iterator::operator=(), bm::bvector< Alloc >::bulk_insert_iterator::operator=(), and bm::bvector< Alloc >::bulk_insert_iterator::operator=().