BitMagic-C++
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
bm::compressed_collection< Value, BV > Class Template Reference

Compressed (sparse collection of objects) More...

#include <bmsparsevec_util.h>

Inheritance diagram for bm::compressed_collection< Value, BV >:
Inheritance graph
[legend]
Collaboration diagram for bm::compressed_collection< Value, BV >:
Collaboration graph
[legend]

Public Types

typedef BV bvector_type
 
typedef BV::size_type size_type
 
typedef size_type key_type
 
typedef size_type address_type
 
typedef Value value_type
 
typedef Value mapped_type
 
typedef std::vector< value_typecontainer_type
 
typedef bm::bvps_addr_resolver< bvector_typeaddress_resolver_type
 

Public Member Functions

 compressed_collection ()
 
bool push_back (key_type key, const value_type &val)
 Add new value to compressed collection. More...
 
const value_typeat (key_type key) const
 find and return const associated value (with bounds/presense checking) More...
 
value_typeat (key_type key)
 find and return associated value (with bounds/presense checking) More...
 
void sync ()
 Checkpoint method to prepare collection for reading. More...
 
void optimize (bm::word_t *temp_block=0)
 perform memory optimizations/compression More...
 
bool resolve (key_type key, address_type *addr) const
 Resolve key address (index) in the dense vector. More...
 
const value_typeget (address_type addr) const
 Get access to associated value by resolved address. More...
 
const address_resolver_typeresolver () const
 Get address resolver. More...
 
address_resolver_typeresolver ()
 Get address resolver. More...
 
size_t size () const
 size of collection More...
 
bool equal (const compressed_collection< Value, BV > &ccoll) const
 perform equality comparison with another collection More...
 
container_typecontainer ()
 return dense container for direct access (this should be treated as an internal function designed for deserialization) More...
 

Protected Member Functions

void throw_range_error (const char *err_msg) const
  More...
 

Protected Attributes

address_resolver_type addr_res_
 address resolver More...
 
container_type dense_vect_
 compressed space container More...
 
key_type last_add_
 last added element More...
 

Detailed Description

template<class Value, class BV>
class bm::compressed_collection< Value, BV >

Compressed (sparse collection of objects)

Definition at line 226 of file bmsparsevec_util.h.

Member Function Documentation

◆ at() [1/2]

template<class Value , class BV >
compressed_collection< Value, BV >::value_type & bm::compressed_collection< Value, BV >::at ( key_type  key)

find and return associated value (with bounds/presense checking)

Definition at line 684 of file bmsparsevec_util.h.

◆ at() [2/2]

template<class Value , class BV >
const compressed_collection< Value, BV >::value_type & bm::compressed_collection< Value, BV >::at ( key_type  key) const

find and return const associated value (with bounds/presense checking)

Definition at line 669 of file bmsparsevec_util.h.

◆ container()

template<class Value , class BV >
container_type& bm::compressed_collection< Value, BV >::container ( )
inline

return dense container for direct access (this should be treated as an internal function designed for deserialization)

Definition at line 296 of file bmsparsevec_util.h.

References bm::compressed_collection< Value, BV >::dense_vect_.

◆ equal()

template<class Value , class BV >
bool bm::compressed_collection< Value, BV >::equal ( const compressed_collection< Value, BV > &  ccoll) const

◆ get()

template<class Value , class BV >
const compressed_collection< Value, BV >::value_type & bm::compressed_collection< Value, BV >::get ( address_type  addr) const

Get access to associated value by resolved address.

Definition at line 660 of file bmsparsevec_util.h.

◆ optimize()

template<class Value , class BV >
void bm::compressed_collection< Value, BV >::optimize ( bm::word_t temp_block = 0)

perform memory optimizations/compression

Definition at line 639 of file bmsparsevec_util.h.

◆ push_back()

template<class Value , class BV >
bool bm::compressed_collection< Value, BV >::push_back ( key_type  key,
const value_type val 
)

Add new value to compressed collection.

Must be added in sorted key order (growing).

Unsorted will not be added!

Returns
true if value was added (does not violate sorted key order)

Definition at line 610 of file bmsparsevec_util.h.

References BM_ASSERT.

◆ resolve()

template<class Value , class BV >
bool bm::compressed_collection< Value, BV >::resolve ( key_type  key,
address_type addr 
) const

Resolve key address (index) in the dense vector.

Definition at line 647 of file bmsparsevec_util.h.

◆ resolver() [1/2]

template<class Value , class BV >
address_resolver_type& bm::compressed_collection< Value, BV >::resolver ( )
inline

Get address resolver.

Definition at line 283 of file bmsparsevec_util.h.

References bm::compressed_collection< Value, BV >::addr_res_.

◆ resolver() [2/2]

template<class Value , class BV >
const address_resolver_type& bm::compressed_collection< Value, BV >::resolver ( ) const
inline

Get address resolver.

Definition at line 279 of file bmsparsevec_util.h.

References bm::compressed_collection< Value, BV >::addr_res_.

◆ size()

template<class Value , class BV >
size_t bm::compressed_collection< Value, BV >::size ( ) const
inline

size of collection

Definition at line 287 of file bmsparsevec_util.h.

References bm::compressed_collection< Value, BV >::dense_vect_.

◆ sync()

template<class Value , class BV >
void bm::compressed_collection< Value, BV >::sync

Checkpoint method to prepare collection for reading.

Definition at line 631 of file bmsparsevec_util.h.

◆ throw_range_error()

template<class Value , class BV >
void bm::compressed_collection< Value, BV >::throw_range_error ( const char *  err_msg) const
protected

Definition at line 699 of file bmsparsevec_util.h.

References BM_ASSERT_THROW.

Field Documentation

◆ addr_res_

template<class Value , class BV >
address_resolver_type bm::compressed_collection< Value, BV >::addr_res_
protected

◆ dense_vect_

template<class Value , class BV >
container_type bm::compressed_collection< Value, BV >::dense_vect_
protected

◆ last_add_

template<class Value , class BV >
key_type bm::compressed_collection< Value, BV >::last_add_
protected

last added element

Definition at line 304 of file bmsparsevec_util.h.


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