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 () | |
~bulk_insert_iterator () | |
bulk_insert_iterator (bvector< Alloc > &bvect, bm::sort_order so=BM_UNKNOWN) | |
bulk_insert_iterator (const bulk_insert_iterator &iit) | |
bulk_insert_iterator (const insert_iterator &iit) | |
bulk_insert_iterator (bulk_insert_iterator &&iit) BMNOEXEPT | |
bulk_insert_iterator & | operator= (const bulk_insert_iterator &ii) |
bulk_insert_iterator & | operator= (bulk_insert_iterator &&ii) BMNOEXEPT |
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 |
Static Protected Member Functions | |
static size_type | buf_size_max () |
Protected Attributes | |
bvector_type * | bvect_ |
target bvector More... | |
size_type * | buf_ |
bulk insert buffer More... | |
size_type | buf_size_ |
current buffer size More... | |
bm::sort_order | sorted_ |
sort order hint More... | |
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 469 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 476 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 502 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 569 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 554 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 565 of file bm.h.
References bm::bvector< Alloc >::bulk_insert_iterator::bvect_.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 532 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 580 of file bm.h.
Referenced by bm::bvector< Alloc >::bulk_insert_iterator::bulk_insert_iterator(), bm::bvector< Alloc >::bulk_insert_iterator::flush(), bm::bvector< Alloc >::bulk_insert_iterator::operator=(), and bm::bvector< Alloc >::bulk_insert_iterator::~bulk_insert_iterator().
|
protected |
current buffer size
Definition at line 581 of file bm.h.
Referenced by bm::bvector< Alloc >::bulk_insert_iterator::bulk_insert_iterator(), bm::bvector< Alloc >::bulk_insert_iterator::flush(), and bm::bvector< Alloc >::bulk_insert_iterator::operator=().
|
protected |
target bvector
Definition at line 579 of file bm.h.
Referenced by 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=(), and bm::bvector< Alloc >::bulk_insert_iterator::~bulk_insert_iterator().
|
protected |
sort order hint
Definition at line 582 of file bm.h.
Referenced by bm::bvector< Alloc >::bulk_insert_iterator::bulk_insert_iterator(), bm::bvector< Alloc >::bulk_insert_iterator::flush(), and bm::bvector< Alloc >::bulk_insert_iterator::operator=().