|
BitMagic-C++
|
Back insert iterator implements buffered insert, faster than generic access assignment. More...
#include <bmsparsevec.h>
Public Types | |
| typedef std::output_iterator_tag | iterator_category |
| typedef sparse_vector< Val, BV > | sparse_vector_type |
| typedef sparse_vector_type * | sparse_vector_type_ptr |
| typedef sparse_vector_type::value_type | value_type |
| typedef sparse_vector_type::unsigned_value_type | unsigned_value_type |
| typedef sparse_vector_type::size_type | size_type |
| typedef sparse_vector_type::bvector_type | bvector_type |
| typedef bvector_type::allocator_type | allocator_type |
| typedef bvector_type::allocator_type::allocator_pool_type | allocator_pool_type |
| typedef bm::byte_buffer< allocator_type > | buffer_type |
| typedef void | difference_type |
| typedef void | pointer |
| typedef void | reference |
Public Member Functions | |
| void | operator= (value_type v) |
| push value to the vector | |
| back_insert_iterator & | operator* () |
| noop | |
| back_insert_iterator & | operator++ () |
| noop | |
| back_insert_iterator & | operator++ (int) |
| noop | |
| void | add (value_type v) |
| add value to the container | |
| void | add_null () |
| add NULL (no-value) to the container | |
| void | add_null (size_type count) |
| add a series of consequitve NULLs (no-value) to the container | |
| bool | empty () const |
| return true if insertion buffer is empty | |
| bool | flush () |
| flush the accumulated buffer | |
| bvector_type * | get_null_bvect () const BMNOEXCEPT |
| Get access to not-null vector. | |
| void | add_value_no_null (value_type v) |
| add value to the buffer without changing the NULL vector | |
| void | disable_set_null () BMNOEXCEPT |
| Reconfigure back inserter not to touch the NULL vector. | |
Construction and assignment | |
| back_insert_iterator () | |
| back_insert_iterator (sparse_vector_type *sv) | |
| back_insert_iterator (const back_insert_iterator &bi) | |
| void | operator= (const back_insert_iterator &bi) |
| back_insert_iterator (back_insert_iterator &&bi) BMNOEXCEPT | |
| move constructor | |
| void | operator= (back_insert_iterator &&bi) BMNOEXCEPT |
| move assignment | |
| ~back_insert_iterator () | |
Protected Types | |
| typedef bvector_type::block_idx_type | block_idx_type |
Back insert iterator implements buffered insert, faster than generic access assignment.
Limitations for buffered inserter:
Definition at line 255 of file bmsparsevec.h.
| typedef bvector_type::allocator_type::allocator_pool_type bm::sparse_vector< Val, BV >::back_insert_iterator::allocator_pool_type |
Definition at line 268 of file bmsparsevec.h.
| typedef bvector_type::allocator_type bm::sparse_vector< Val, BV >::back_insert_iterator::allocator_type |
Definition at line 267 of file bmsparsevec.h.
|
protected |
Definition at line 358 of file bmsparsevec.h.
| typedef bm::byte_buffer<allocator_type> bm::sparse_vector< Val, BV >::back_insert_iterator::buffer_type |
Definition at line 269 of file bmsparsevec.h.
| typedef sparse_vector_type::bvector_type bm::sparse_vector< Val, BV >::back_insert_iterator::bvector_type |
Definition at line 266 of file bmsparsevec.h.
| typedef void bm::sparse_vector< Val, BV >::back_insert_iterator::difference_type |
Definition at line 271 of file bmsparsevec.h.
| typedef std::output_iterator_tag bm::sparse_vector< Val, BV >::back_insert_iterator::iterator_category |
Definition at line 259 of file bmsparsevec.h.
| typedef void bm::sparse_vector< Val, BV >::back_insert_iterator::pointer |
Definition at line 272 of file bmsparsevec.h.
| typedef void bm::sparse_vector< Val, BV >::back_insert_iterator::reference |
Definition at line 273 of file bmsparsevec.h.
| typedef sparse_vector_type::size_type bm::sparse_vector< Val, BV >::back_insert_iterator::size_type |
Definition at line 265 of file bmsparsevec.h.
| typedef sparse_vector<Val, BV> bm::sparse_vector< Val, BV >::back_insert_iterator::sparse_vector_type |
Definition at line 261 of file bmsparsevec.h.
| typedef sparse_vector_type* bm::sparse_vector< Val, BV >::back_insert_iterator::sparse_vector_type_ptr |
Definition at line 262 of file bmsparsevec.h.
| typedef sparse_vector_type::unsigned_value_type bm::sparse_vector< Val, BV >::back_insert_iterator::unsigned_value_type |
Definition at line 264 of file bmsparsevec.h.
| typedef sparse_vector_type::value_type bm::sparse_vector< Val, BV >::back_insert_iterator::value_type |
Definition at line 263 of file bmsparsevec.h.
| bm::sparse_vector< Val, BV >::back_insert_iterator::back_insert_iterator | ( | ) |
Definition at line 2461 of file bmsparsevec.h.
Referenced by back_insert_iterator(), back_insert_iterator(), operator*(), operator++(), operator++(), operator=(), and operator=().
| bm::sparse_vector< Val, BV >::back_insert_iterator::back_insert_iterator | ( | sparse_vector_type * | sv | ) |
| bm::sparse_vector< Val, BV >::back_insert_iterator::back_insert_iterator | ( | const back_insert_iterator & | bi | ) |
References back_insert_iterator().
| bm::sparse_vector< Val, BV >::back_insert_iterator::back_insert_iterator | ( | back_insert_iterator && | bi | ) |
move constructor
References back_insert_iterator(), and BMNOEXCEPT.
| bm::sparse_vector< Val, BV >::back_insert_iterator::~back_insert_iterator | ( | ) |
Definition at line 2517 of file bmsparsevec.h.
References flush().
| void bm::sparse_vector< Val, BV >::back_insert_iterator::add | ( | value_type | v | ) |
add value to the container
Definition at line 2525 of file bmsparsevec.h.
References add_value_no_null(), and BM_ASSERT.
Referenced by operator=().
| void bm::sparse_vector< Val, BV >::back_insert_iterator::add_null | ( | ) |
add NULL (no-value) to the container
Definition at line 2567 of file bmsparsevec.h.
References add_value_no_null(), and BM_ASSERT.
| void bm::sparse_vector< Val, BV >::back_insert_iterator::add_null | ( | size_type | count | ) |
add a series of consequitve NULLs (no-value) to the container
| BMFORCEINLINE void bm::sparse_vector< Val, BV >::back_insert_iterator::add_value_no_null | ( | value_type | v | ) |
add value to the buffer without changing the NULL vector
| v | - value to push back |
Definition at line 2547 of file bmsparsevec.h.
References BM_ASSERT, flush(), bm::sparse_vector< Val, BV >::n_buf_size, and bm::base_sparse_vector< Val, BV, 1 >::s2u().
Referenced by add(), and add_null().
|
inline |
Reconfigure back inserter not to touch the NULL vector.
Definition at line 354 of file bmsparsevec.h.
References BMNOEXCEPT.
| bool bm::sparse_vector< Val, BV >::back_insert_iterator::empty | ( | ) | const |
return true if insertion buffer is empty
Definition at line 2594 of file bmsparsevec.h.
Referenced by operator=().
| bool bm::sparse_vector< Val, BV >::back_insert_iterator::flush | ( | ) |
flush the accumulated buffer
Definition at line 2602 of file bmsparsevec.h.
References bm::set_block_shift.
Referenced by add_value_no_null(), operator=(), operator=(), and ~back_insert_iterator().
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
move assignment
Definition at line 295 of file bmsparsevec.h.
References back_insert_iterator(), BMNOEXCEPT, and flush().
|
inline |
Definition at line 283 of file bmsparsevec.h.
References back_insert_iterator(), BM_ASSERT, empty(), flush(), and bm::sparse_vector< Val, BV >::n_buf_size.
|
inline |