BitMagic-C++: bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE > Class Template Reference

BitMagic-C++

Data Structures | Public Types | Public Member Functions | Static Public Member Functions | Data Fields | Protected Member Functions | Protected Attributes | Friends
bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE > Class Template Reference
BitMagic Library » sparse_vector<>

sparse vector for strings with compression using bit transposition method More...

`#include <bmstrsparsevec.h>`

Inheritance diagram for bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >:
[legend]
Collaboration diagram for bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >:
[legend]

## Data Structures
class | back_insert_iterator
| Back insert iterator implements buffered insert, faster than generic access assignment. More...
class | const_iterator
| Const iterator to do quick traverse of the sparse vector. More...
class | const_reference
| Reference class to access elements via common [] operator. More...
struct | is_remap_support
struct | is_rsc_support
class | reference
| Reference class to access elements via common [] operator. More...
struct | statistics

## Public Types
enum | octet_plains { sv_octet_plains = MAX_STR_SIZE }
typedef BV | bvector_type
typedef bvector_type * | bvector_type_ptr
typedef CharType | value_type
typedef bvector_type::size_type | size_type
typedef BV::allocator_type | allocator_type
typedef bvector_type::allocation_policy | allocation_policy_type
typedef bvector_type::enumerator | bvector_enumerator_type
typedef allocator_type::allocator_pool_type | allocator_pool_type
typedef bm::basic_bmatrix< BV > | bmatrix_type
typedef base_sparse_vector< CharType, BV, MAX_STR_SIZE > | parent_type
typedef bm::heap_matrix< unsigned char, MAX_STR_SIZE, 256, typename bvector_type::allocator_type > | plain_octet_matrix_type
Public Types inherited from bm::base_sparse_vector< CharType, BV, MAX_STR_SIZE >
enum | bit_plains
enum | vector_capacity
typedef CharType | value_type
typedef BV | bvector_type
typedef BV::size_type | size_type
typedef bvector_type * | bvector_type_ptr
typedef BV::allocator_type | allocator_type
typedef bvector_type::allocation_policy | allocation_policy_type
typedef bvector_type::enumerator | bvector_enumerator_type
typedef allocator_type::allocator_pool_type | allocator_pool_type
typedef bm::basic_bmatrix< BV > | bmatrix_type

## Public Member Functions
| str_sparse_vector (bm::null_support null_able=bm::no_null, allocation_policy_type ap=allocation_policy_type(), size_type bv_max_size=bm::id_max, const allocator_type &alloc=allocator_type())
| Sparse vector constructor. More...
| str_sparse_vector (const str_sparse_vector &str_sv)
str_sparse_vector< CharType, BV, MAX_STR_SIZE > & | operator= (const str_sparse_vector< CharType, BV, MAX_STR_SIZE > &str_sv)
| str_sparse_vector (str_sparse_vector< CharType, BV, MAX_STR_SIZE > &&str_sv) BMNOEXCEPT
str_sparse_vector< CharType, BV, MAX_STR_SIZE > & | operator= (str_sparse_vector< CharType, BV, MAX_STR_SIZE > &&str_sv) BMNOEXCEPT
void | sync (bool force)
| syncronize internal structures More...
bool | equal (const str_sparse_vector< CharType, BV, MAX_STR_SIZE > &sv, bm::null_support null_able=bm::use_null) const BMNOEXCEPT
| check if another sparse vector has the same content and size More...
size_type | effective_size () const BMNOEXCEPT
| size of sparse vector (may be different for RSC) More...
String element access
reference | operator[] (size_type idx)
| Operator to get write access to an element More...
const_reference | operator[] (size_type idx) const
| Operator to get read access to an element More...
void | set (size_type idx, const value_type *str)
| set specified element with bounds checking and automatic resize More...
void | set_null (size_type idx)
| set NULL status for the specified element Vector is resized automatically More...
void | insert (size_type idx, const value_type *str)
| insert the specified element More...
template<typename StrType >
void | insert (size_type idx, const StrType &str)
| insert STL string More...
void | erase (size_type idx)
| erase the specified element More...
size_type | get (size_type idx, value_type *str, size_type buf_size) const BMNOEXCEPT
| get specified element More...
template<typename StrType >
void | assign (size_type idx, const StrType &str)
| set specified element with bounds checking and automatic resize More...
template<typename StrType >
void | push_back (const StrType &str)
| push back a string More...
void | push_back (const value_type *str)
| push back a string (zero terminated) More...
template<typename StrType >
void | get (size_type idx, StrType &str) const
| get specified string element Template method expects an STL-compatible type basic_string<> More...
void | swap (str_sparse_vector &str_sv) BMNOEXCEPT
Element comparison functions
int | compare (size_type idx, const value_type *str) const BMNOEXCEPT
| Compare vector element with argument lexicographically. More...
unsigned | common_prefix_length (size_type idx1, size_type idx2) const BMNOEXCEPT
| Find size of common prefix between two vector elements in octets. More...
Clear
void | clear () BMNOEXCEPT
| resize to zero, free memory More...
str_sparse_vector< CharType, BV, MAX_STR_SIZE > & | clear_range (size_type left, size_type right, bool set_null=false)
| clear range (assign bit 0 for all plains) More...
Memory optimization/compression
void | optimize (bm::word_t *temp_block=0, typename bvector_type::optmode opt_mode=bvector_type::opt_compress, typename str_sparse_vector< CharType, BV, MAX_STR_SIZE >::statistics *stat=0)
| run memory optimization for all vector plains More...
void | calc_stat (struct str_sparse_vector< CharType, BV, MAX_STR_SIZE >::statistics *st) const BMNOEXCEPT
| Calculates memory statistics. More...
Iterator access
const_iterator | begin () const BMNOEXCEPT
| Provide const iterator access to container content More...
const_iterator | end () const BMNOEXCEPT
| Provide const iterator access to the end More...
const_iterator | get_const_iterator (size_type idx) const BMNOEXCEPT
| Get const_itertor re-positioned to specific element. More...
back_insert_iterator | get_back_inserter ()
| Provide back insert iterator Back insert iterator implements buffered insertion, which is faster, than random access or push_back. More...
Export content to C-style
template<typename CharMatrix >
size_type | decode (CharMatrix &cmatr, size_type idx_from, size_type dec_size, bool zero_mem=true) const
| Bulk export strings to a C-style matrix of chars. More...
template<typename CharMatrix >
void | import (CharMatrix &cmatr, size_type idx_from, size_type imp_size)
| Bulk import of strings from a C-style matrix of chars. More...
template<typename CharMatrix >
void | import_back (CharMatrix &cmatr, size_type imp_size)
| Bulk push-back import of strings from a C-style matrix of chars. More...
Merge, split, partition data
void | copy_range (const str_sparse_vector< CharType, BV, MAX_STR_SIZE > &sv, size_type left, size_type right, bm::null_support splice_null=bm::use_null)
| copy range of values from another sparse vector More...
Public Member Functions inherited from bm::base_sparse_vector< CharType, BV, MAX_STR_SIZE >
| base_sparse_vector ()
| base_sparse_vector (bm::null_support null_able, allocation_policy_type ap, size_type bv_max_size, const allocator_type &alloc)
| base_sparse_vector (const base_sparse_vector< CharType, BV, MAX_SIZE > &bsv)
| base_sparse_vector (base_sparse_vector< CharType, BV, MAX_SIZE > &&bsv) BMNOEXCEPT
void | swap (base_sparse_vector< CharType, BV, MAX_SIZE > &bsv) BMNOEXCEPT
size_type | size () const BMNOEXCEPT
void | resize (size_type new_size)
void | clear_range (size_type left, size_type right, bool set_null)
void | clear () BMNOEXCEPT
| resize to zero, free memory More...
bool | empty () const BMNOEXCEPT
void | optimize (bm::word_t *temp_block=0, typename bvector_type::optmode opt_mode=bvector_type::opt_compress, typename bvector_type::statistics *stat=0)
| run memory optimization for all bit-vector rows More...
void | calc_stat (typename bvector_type::statistics *st) const BMNOEXCEPT
| Calculates memory statistics. More...
bool | equal (const base_sparse_vector< CharType, BV, MAX_SIZE > &sv, bm::null_support null_able=bm::use_null) const BMNOEXCEPT
| check if another sparse vector has the same content and size More...
bool | is_nullable () const BMNOEXCEPT
| check if container supports NULL(unassigned) values More...
const bvector_type * | get_null_bvector () const BMNOEXCEPT
| Get bit-vector of assigned values or NULL (if not constructed that way) More...
bool | is_null (size_type idx) const BMNOEXCEPT
| test if specified element is NULL More...
bvector_type_ptr | get_plain (unsigned i)
| get access to bit-plain, function checks and creates a plain More...
bvector_type_const_ptr | get_plain (unsigned i) const BMNOEXCEPT
| get read-only access to bit-plain More...
unsigned | effective_plains () const BMNOEXCEPT
| Number of effective bit-plains in the value type. More...
bvector_type_ptr | plain (unsigned i) BMNOEXCEPT
| get access to bit-plain as is (can return NULL) More...
bvector_type_const_ptr | plain (unsigned i) const BMNOEXCEPT
bvector_type * | get_null_bvect ()
void | free_plain (unsigned i)
| free memory in bit-plain More...
bm::id64_t | get_plains_mask (unsigned element_idx) const BMNOEXCEPT
const bmatrix_type & | get_bmatrix () const BMNOEXCEPT

## Static Public Member Functions
static bool | find_rank (size_type rank, size_type &pos) BMNOEXCEPT
| find position of compressed element by its rank More...
Various traits
static bool | is_compressed () BMNOEXCEPT
| trait if sparse vector is "compressed" (false) More...
Static Public Member Functions inherited from bm::base_sparse_vector< CharType, BV, MAX_STR_SIZE >
static unsigned | plains () BMNOEXCEPT
| get total number of bit-plains in the vector More...
static unsigned | stored_plains () BMNOEXCEPT
| Number of stored bit-plains (value plains + extra. More...

## Data Fields
const typedef bvector_type * | bvector_type_const_ptr
Data Fields inherited from bm::base_sparse_vector< CharType, BV, MAX_STR_SIZE >
const typedef bvector_type * | bvector_type_const_ptr
const typedef value_type & | const_reference

## Protected Member Functions
template<typename CharMatrix >
void | import_no_check (CharMatrix &cmatr, size_type idx_from, size_type imp_size, bool set_not_null=true)
void | set_value (size_type idx, const value_type *str)
| set value without checking boundaries More...
void | set_value_no_null (size_type idx, const value_type *str)
| set value without checking boundaries or support of NULL More...
void | insert_value (size_type idx, const value_type *str)
| insert value without checking boundaries More...
void | insert_value_no_null (size_type idx, const value_type *str)
| insert value without checking boundaries or support of NULL More...
size_type | size_internal () const
void | resize_internal (size_type sz)
size_t | remap_size () const
const unsigned char * | get_remap_buffer () const
unsigned char * | init_remap_buffer ()
void | set_remap ()
bool | resolve_range (size_type from, size_type to, size_type *idx_from, size_type *idx_to) const
Protected Member Functions inherited from bm::base_sparse_vector< CharType, BV, MAX_STR_SIZE >
void | copy_from (const base_sparse_vector< CharType, BV, MAX_SIZE > &bsv)
void | clear_value_plains_from (unsigned plain_idx, size_type idx)
void | insert_clear_value_plains_from (unsigned plain_idx, size_type idx)
void | erase_column (size_type idx)
void | insert_null (size_type idx, bool not_null)
void | optimize_block (block_idx_type nb)
| optimize block in all matrix plains More...
void | copy_range_plains (const base_sparse_vector< CharType, BV, MAX_SIZE > &bsv, typename base_sparse_vector< CharType, BV, MAX_SIZE >::size_type left, typename base_sparse_vector< CharType, BV, MAX_SIZE >::size_type right, bm::null_support splice_null)
| Perform copy_range() on a set of plains. More...

## Static Protected Member Functions
Errors and exceptions
static void | throw_range_error (const char *err_msg)
| throw range error More...
static void | throw_bad_value (const char *err_msg)
| throw domain error More...
Static Protected Member Functions inherited from bm::base_sparse_vector< CharType, BV, MAX_STR_SIZE >
static unsigned | value_bits () BMNOEXCEPT
| Number of total bit-plains in the value type. More...
static unsigned | null_plain () BMNOEXCEPT
| plain index for the "NOT NULL" flags plain More...

## Protected Attributes
unsigned | remap_flags_
| remapping status More...
plain_octet_matrix_type | remap_matrix1_
| octet remap table 1 More...
plain_octet_matrix_type | remap_matrix2_
| octet remap table 2 More...
Protected Attributes inherited from bm::base_sparse_vector< CharType, BV, MAX_STR_SIZE >
bmatrix_type | bmatr_
| bit-transposed matrix More...
size_type | size_
| array size More...
unsigned | effective_plains_

## Friends
template<class SVect >
class | sparse_vector_serializer
template<class SVect >
class | sparse_vector_deserializer

## Size, etc
size_type | size () const
| return size of the vector More...
bool | empty () const
| return true if vector is empty More...
void | resize (size_type sz)
| resize vector More...
size_type | effective_max_str () const BMNOEXCEPT
| get effective string length used in vector Calculate and returns efficiency, how close are we to the reserved maximum. More...
size_type | effective_vector_max () const
| get effective string length used in vector More...
static size_type | max_str ()
| get maximum string length capacity More...

## remapping, succinct utilities
Remapping implements reduction of dit-depth thus improves search performance. Remapping limits farther modifications of sparse vector.
bool | is_remap () const BMNOEXCEPT
| Get remapping status (true|false) More...
void | remap_from (const str_sparse_vector &str_sv)
| Build remapping profile and load content from another sparse vector. More...
void | calc_octet_stat (plain_octet_matrix_type &octet_matrix) const BMNOEXCEPT
bool | remap_tosv (value_type *sv_str, size_type buf_size, const value_type *str) const BMNOEXCEPT
void | recalc_remap_matrix2 ()
static void | build_octet_remap (plain_octet_matrix_type &octet_remap_matrix1, plain_octet_matrix_type &octet_remap_matrix2, const plain_octet_matrix_type &octet_occupancy_matrix)
static bool | remap_tosv (value_type *BMRESTRICT sv_str, size_type buf_size, const value_type *BMRESTRICT str, const plain_octet_matrix_type &BMRESTRICT octet_remap_matrix2) BMNOEXCEPT
static bool | remap_fromsv (value_type *BMRESTRICT str, size_type buf_size, const value_type *BMRESTRICT sv_str, const plain_octet_matrix_type &BMRESTRICT octet_remap_matrix1) BMNOEXCEPT

## Additional Inherited Members
Protected Types inherited from bm::base_sparse_vector< CharType, BV, MAX_STR_SIZE >
typedef bvector_type::block_idx_type | block_idx_type

## Detailed Description

### template<typename CharType, typename BV, unsigned MAX_STR_SIZE>
class bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >

sparse vector for strings with compression using bit transposition method

Initial string is bit-transposed into bit-planes so collection may use less memory due to prefix sum (GAP) compression in bit-plains.

Examples
  strsvsample01.cpp, strsvsample02.cpp, strsvsample03.cpp, strsvsample04.cpp, strsvsample05.cpp, and xsample05.cpp.

Definition at line 56 of file bmstrsparsevec.h.

## Member Typedef Documentation

## ◆ allocation_policy_type

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

typedef bvector_type::allocation_policy bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::allocation_policy_type

Definition at line 65 of file bmstrsparsevec.h.

## ◆ allocator_pool_type

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

typedef allocator_type::allocator_pool_type bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::allocator_pool_type

Definition at line 67 of file bmstrsparsevec.h.

## ◆ allocator_type

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

typedef BV::allocator_type bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::allocator_type

Definition at line 64 of file bmstrsparsevec.h.

## ◆ bmatrix_type

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

typedef bm::basic_bmatrix<BV> bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::bmatrix_type

Definition at line 68 of file bmstrsparsevec.h.

## ◆ bvector_enumerator_type

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

typedef bvector_type::enumerator bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::bvector_enumerator_type

Definition at line 66 of file bmstrsparsevec.h.

## ◆ bvector_type

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

typedef BV bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::bvector_type

Definition at line 59 of file bmstrsparsevec.h.

## ◆ bvector_type_ptr

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

typedef bvector_type* bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::bvector_type_ptr

Definition at line 60 of file bmstrsparsevec.h.

## ◆ parent_type

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

typedef base_sparse_vector<CharType, BV, MAX_STR_SIZE> bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::parent_type

Definition at line 69 of file bmstrsparsevec.h.

## ◆ plain_octet_matrix_type

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

typedef bm::heap_matrix<unsigned char, MAX_STR_SIZE, 256, typename bvector_type::allocator_type> bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::plain_octet_matrix_type

Definition at line 85 of file bmstrsparsevec.h.

## ◆ size_type

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

typedef bvector_type::size_type bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::size_type

Definition at line 63 of file bmstrsparsevec.h.

## ◆ value_type

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

typedef CharType bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::value_type

Definition at line 62 of file bmstrsparsevec.h.

## Member Enumeration Documentation

## ◆ octet_plains

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

enum bm::str_sparse_vector::octet_plains

Enumerator
sv_octet_plains |

Definition at line 75 of file bmstrsparsevec.h.

## Constructor & Destructor Documentation

## ◆ str_sparse_vector() [1/3]

template<class CharType , class BV , unsigned MAX_STR_SIZE>

bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::str_sparse_vector | ( | bm::null_support | null_able = `bm::no_null`,
|  | allocation_policy_type | ap = `allocation_policy_type()`,
|  | size_type | bv_max_size = `bm::id_max`,
|  | const allocator_type & | alloc = `allocator_type()`
| ) |  |

Sparse vector constructor.

Parameters

  null_able | - defines if vector supports NULL values flag by default it is OFF, use bm::use_null to enable it
  ap | - allocation strategy for underlying bit-vectors Default allocation policy uses BM_BIT setting (fastest access)
  bv_max_size | - maximum possible size of underlying bit-vectors Please note, this is NOT size of svector itself, it is dynamic upper limit which should be used very carefully if we surely know the ultimate size
  alloc | - allocator for bit-vectors

See also
  bvector<>
  bm::bvector<>::allocation_policy
  bm::startegy

Definition at line 1122 of file bmstrsparsevec.h.

## ◆ str_sparse_vector() [2/3]

template<class CharType , class BV , unsigned MAX_STR_SIZE>

bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::str_sparse_vector | ( | const str_sparse_vector< CharType, BV, MAX_STR_SIZE > & | str_sv | ) |

copy-ctor

Definition at line 1135 of file bmstrsparsevec.h.

## ◆ str_sparse_vector() [3/3]

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::str_sparse_vector | ( | str_sparse_vector< CharType, BV, MAX_STR_SIZE > && | str_sv | ) |
| inline

move-ctor

Definition at line 397 of file bmstrsparsevec.h.

References bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::remap_flags_, bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::remap_matrix1_, bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::remap_matrix2_, and bm::base_sparse_vector< CharType, BV, MAX_STR_SIZE >::swap().

## Member Function Documentation

## ◆ assign()

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>
template<typename StrType >

void bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::assign | ( | size_type | idx,
|  | const StrType & | str
| ) |  |
| inline

set specified element with bounds checking and automatic resize

This is an equivalent of set() method, but templetized to be more compatible with the STL std::string and the likes

Parameters

  idx | - element index (vector auto-resized if needs to)
  str | - input string expected an STL class with size() support, like basic_string<> or vector<char>

Examples
  strsvsample01.cpp, and strsvsample04.cpp.

Definition at line 494 of file bmstrsparsevec.h.

References BM_ASSERT, bm::base_sparse_vector< CharType, BV, MAX_STR_SIZE >::bmatr_, bm::base_sparse_vector< CharType, BV, MAX_STR_SIZE >::clear_value_plains_from(), bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::remap_flags_, bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::remap_matrix2_, bm::basic_bmatrix< BV >::set_octet(), bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::size(), and bm::base_sparse_vector< CharType, BV, MAX_STR_SIZE >::size_.

Referenced by main(), and bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::push_back().

## ◆ begin()

template<class CharType , class BV , unsigned MAX_STR_SIZE>

str_sparse_vector< CharType, BV, MAX_STR_SIZE >::const_iterator bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::begin

Provide const iterator access to container content

Examples
  strsvsample01.cpp, strsvsample02.cpp, and strsvsample04.cpp.

Definition at line 1700 of file bmstrsparsevec.h.

Referenced by main().

## ◆ build_octet_remap()

template<class CharType , class BV , unsigned MAX_STR_SIZE>

void bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::build_octet_remap | ( | plain_octet_matrix_type & | octet_remap_matrix1,
|  | plain_octet_matrix_type & | octet_remap_matrix2,
|  | const plain_octet_matrix_type & | octet_occupancy_matrix
| ) |  |
| static

Definition at line 1483 of file bmstrsparsevec.h.

References BM_ASSERT.

Referenced by bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::remap_from().

## ◆ calc_octet_stat()

template<class CharType , class BV , unsigned MAX_STR_SIZE>

void bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::calc_octet_stat | ( | plain_octet_matrix_type & | octet_matrix | ) | const

Calculate flags which octets are present on each byte-plain.

Definition at line 1457 of file bmstrsparsevec.h.

Referenced by bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::remap_from().

## ◆ calc_stat()

template<class CharType , class BV , unsigned MAX_STR_SIZE>

void bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::calc_stat | ( | struct str_sparse_vector< CharType, BV, MAX_STR_SIZE >::statistics * | st | ) | const

Calculates memory statistics.

Function fills statistics structure containing information about how this vector uses memory and estimation of max. amount of memory bvector needs to serialize itself.

Parameters

  st | - pointer on statistics structure to be filled in.

See also
  statistics

Examples
  strsvsample03.cpp, and strsvsample05.cpp.

Definition at line 1338 of file bmstrsparsevec.h.

References bm::bv_statistics::bit_blocks, BM_ASSERT, bm::bv_statistics::bv_count, bm::bv_statistics::gap_blocks, bm::bv_statistics::gap_cap_overhead, bm::bv_statistics::max_serialize_mem, bm::bv_statistics::memory_used, and bm::bv_statistics::ptr_sub_blocks.

Referenced by main().

## ◆ clear()

template<class CharType , class BV , unsigned MAX_STR_SIZE>

void bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::clear

resize to zero, free memory

Definition at line 1710 of file bmstrsparsevec.h.

## ◆ clear_range()

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

str_sparse_vector<CharType, BV, MAX_STR_SIZE>& bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::clear_range | ( | size_type | left,
|  | size_type | right,
|  | bool | set_null = `false`
| ) |  |
| inline

clear range (assign bit 0 for all plains)

Parameters

  left | - interval start
  right | - interval end (closed interval)
  set_null | - set cleared values to unassigned (NULL)

Examples
  strsvsample04.cpp.

Definition at line 620 of file bmstrsparsevec.h.

References bm::base_sparse_vector< CharType, BV, MAX_STR_SIZE >::clear_range(), and bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::set_null().

Referenced by bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::import(), and main().

## ◆ common_prefix_length()

template<class CharType , class BV , unsigned MAX_STR_SIZE>

unsigned bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::common_prefix_length | ( | size_type | idx1,
|  | size_type | idx2
| ) |  | const

Find size of common prefix between two vector elements in octets.

Returns
  size of common prefix

Definition at line 1399 of file bmstrsparsevec.h.

## ◆ compare()

template<class CharType , class BV , unsigned MAX_STR_SIZE>

int bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::compare | ( | size_type | idx,
|  | const value_type * | str
| ) |  | const

Compare vector element with argument lexicographically.

NOTE: for a re-mapped container, input string may have no correct remapping, in this case we have an ambiguity (we know it is not equal (0) but LT or GT?). Behavior is undefined.

Parameters

  idx | - vactor element index
  str | - argument to compare with

Returns
  0 - equal, < 0 - vect[i] < str, >0 otherwise

Definition at line 1370 of file bmstrsparsevec.h.

References BM_ASSERT.

## ◆ copy_range()

template<class CharType , class BV , unsigned MAX_STR_SIZE>

void bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::copy_range | ( | const str_sparse_vector< CharType, BV, MAX_STR_SIZE > & | sv,
|  | size_type | left,
|  | size_type | right,
|  | bm::null_support | splice_null = `bm::use_null`
| ) |  |

copy range of values from another sparse vector

Copy [left..right] values from the source vector, clear everything outside the range.

Parameters

  sv | - source vector
  left | - index from in losed diapason of [left..right]
  right | - index to in losed diapason of [left..right]
  splice_null | - "use_null" copy range for NULL vector or do not copy it

Definition at line 1678 of file bmstrsparsevec.h.

References bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::remap_flags_, bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::remap_matrix1_, bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::remap_matrix2_, bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::size(), and bm::xor_swap().

## ◆ decode()

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>
template<typename CharMatrix >

size_type bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::decode | ( | CharMatrix & | cmatr,
|  | size_type | idx_from,
|  | size_type | dec_size,
|  | bool | zero_mem = `true`
| ) |  | const
| inline

Bulk export strings to a C-style matrix of chars.

Parameters

  cmatr | - dest matrix (bm::heap_matrix)
  idx_from | - index in the sparse vector to export from
  dec_size | - decoding size (matrix column allocation should match)
  zero_mem | - set to false if target array is pre-initialized with 0s to avoid performance penalty

Returns
  number of actually exported elements (can be less than requested)

Definition at line 829 of file bmstrsparsevec.h.

References BM_ASSERT, bm::base_sparse_vector< CharType, BV, MAX_STR_SIZE >::bmatr_, bm::basic_bmatrix< BV >::get_row(), bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::remap_flags_, bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::remap_matrix1_, bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::size(), and bm::bvector< Alloc >::iterator_base::valid().

Referenced by bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::remap_from().

## ◆ effective_max_str()

template<class CharType , class BV , unsigned MAX_STR_SIZE>

str_sparse_vector< CharType, BV, MAX_STR_SIZE >::size_type bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::effective_max_str

get effective string length used in vector Calculate and returns efficiency, how close are we to the reserved maximum.

Returns
  current string length maximum

Definition at line 1439 of file bmstrsparsevec.h.

Referenced by bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::effective_vector_max().

## ◆ effective_size()

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

size_type bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::effective_size | ( |  | ) | const
| inline

size of sparse vector (may be different for RSC)

Definition at line 968 of file bmstrsparsevec.h.

References bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::size().

## ◆ effective_vector_max()

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

size_type bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::effective_vector_max | ( |  | ) | const
| inline

get effective string length used in vector

Returns
  current string length maximum

Definition at line 664 of file bmstrsparsevec.h.

References bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::effective_max_str().

## ◆ empty()

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

bool bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::empty | ( |  | ) | const
| inline

return true if vector is empty

Returns
  true if empty

Examples
  xsample05.cpp.

Definition at line 642 of file bmstrsparsevec.h.

References bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::size().

Referenced by bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::back_insert_iterator::flush(), main(), and bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::remap_from().

## ◆ end()

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

const_iterator bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::end | ( |  | ) | const
| inline

Provide const iterator access to the end

Examples
  strsvsample01.cpp, strsvsample02.cpp, and strsvsample04.cpp.

Definition at line 709 of file bmstrsparsevec.h.

References bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::const_iterator::const_iterator(), and bm::id_max.

Referenced by main().

## ◆ equal()

template<class CharType , class BV , unsigned MAX_STR_SIZE>

bool bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::equal | ( | const str_sparse_vector< CharType, BV, MAX_STR_SIZE > & | sv,
|  | bm::null_support | null_able = `bm::use_null`
| ) |  | const

check if another sparse vector has the same content and size

Parameters

  sv | - sparse vector for comparison
  null_able | - flag to consider NULL vector in comparison (default) or compare only value content plains

Returns
  true, if it is the same

Definition at line 1651 of file bmstrsparsevec.h.

## ◆ erase()

template<class CharType , class BV , unsigned MAX_STR_SIZE>

void bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::erase | ( | size_type | idx | ) |

erase the specified element

Parameters

  idx | - element index

Examples
  strsvsample01.cpp.

Definition at line 1185 of file bmstrsparsevec.h.

References BM_ASSERT.

Referenced by main().

## ◆ find_rank()

template<class CharType , class BV , unsigned MAX_STR_SIZE>

bool bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::find_rank | ( | size_type | rank,
|  | size_type & | pos
| ) |  |
| static

find position of compressed element by its rank

Definition at line 1426 of file bmstrsparsevec.h.

References BM_ASSERT.

## ◆ get() [1/2]

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>
template<typename StrType >

void bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::get | ( | size_type | idx,
|  | StrType & | str
| ) |  | const
| inline

get specified string element Template method expects an STL-compatible type basic_string<>

Parameters

  idx | - element index (vector auto-resized if needs to)
  str | - string to get [out]

Definition at line 548 of file bmstrsparsevec.h.

References BM_ASSERT, bm::base_sparse_vector< CharType, BV, MAX_STR_SIZE >::bmatr_, bm::basic_bmatrix< BV >::get_octet(), bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::remap_flags_, bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::remap_matrix1_, and bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::throw_bad_value().

## ◆ get() [2/2]

template<class CharType , class BV , unsigned MAX_STR_SIZE>

str_sparse_vector< CharType, BV, MAX_STR_SIZE >::size_type bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::get | ( | size_type | idx,
|  | value_type * | str,
|  | size_type | buf_size
| ) |  | const

get specified element

Parameters

  idx | - element index
  str | - string buffer
  buf_size | - string buffer size

Returns
  string length

Examples
  strsvsample05.cpp, and xsample05.cpp.

Definition at line 1295 of file bmstrsparsevec.h.

Referenced by check_sparse(), and main().

## ◆ get_back_inserter()

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

back_insert_iterator bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::get_back_inserter | ( |  | ) |
| inline

Provide back insert iterator Back insert iterator implements buffered insertion, which is faster, than random access or push_back.

Examples
  strsvsample03.cpp, strsvsample04.cpp, and strsvsample05.cpp.

Definition at line 721 of file bmstrsparsevec.h.

Referenced by main().

## ◆ get_const_iterator()

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

const_iterator bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::get_const_iterator | ( | size_type | idx | ) | const
| inline

Get const_itertor re-positioned to specific element.

Parameters

  idx | - position in the sparse vector

Definition at line 714 of file bmstrsparsevec.h.

References bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::const_iterator::const_iterator().

## ◆ get_remap_buffer()

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

const unsigned char* bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::get_remap_buffer | ( |  | ) | const
| inlineprotected

Definition at line 1090 of file bmstrsparsevec.h.

References bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::remap_matrix1_.

## ◆ import()

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>
template<typename CharMatrix >

void bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::import | ( | CharMatrix & | cmatr,
|  | size_type | idx_from,
|  | size_type | imp_size
| ) |  |
| inline

Bulk import of strings from a C-style matrix of chars.

Parameters

  cmatr | - source matrix (bm::heap_matrix) [in/out] parameter gets modified(corrupted) in the process
  idx_from | - destination index in the sparse vector
  imp_size | - import size (number or rows to import)

Definition at line 889 of file bmstrsparsevec.h.

References bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::clear_range(), bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::import_no_check(), and bm::base_sparse_vector< CharType, BV, MAX_STR_SIZE >::size_.

## ◆ import_back()

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>
template<typename CharMatrix >

void bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::import_back | ( | CharMatrix & | cmatr,
|  | size_type | imp_size
| ) |  |
| inline

Bulk push-back import of strings from a C-style matrix of chars.

Parameters

  cmatr | - source matrix (bm::heap_matrix) [in/out] parameter gets modified(corrupted) in the process
  imp_size | - import size (number or rows to import)

Definition at line 910 of file bmstrsparsevec.h.

References bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::import_no_check(), and bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::size().

## ◆ import_no_check()

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>
template<typename CharMatrix >

void bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::import_no_check | ( | CharMatrix & | cmatr,
|  | size_type | idx_from,
|  | size_type | imp_size,
|  | bool | set_not_null = `true`
| ) |  |
| inlineprotected

Definition at line 974 of file bmstrsparsevec.h.

References bm::bit_list(), BM_ASSERT, bm::BM_SORTED, bm::base_sparse_vector< CharType, BV, MAX_STR_SIZE >::bmatr_, bm::basic_bmatrix< BV >::construct_row(), bm::base_sparse_vector< CharType, BV, MAX_STR_SIZE >::get_null_bvect(), bm::basic_bmatrix< BV >::get_row(), bm::base_sparse_vector< CharType, BV, MAX_STR_SIZE >::plain(), bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::remap_flags_, bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::remap_matrix2_, bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::size(), bm::base_sparse_vector< CharType, BV, MAX_STR_SIZE >::size_, and bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::throw_bad_value().

Referenced by bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::import(), and bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::import_back().

## ◆ init_remap_buffer()

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

unsigned char* bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::init_remap_buffer | ( |  | ) |
| inlineprotected

Definition at line 1092 of file bmstrsparsevec.h.

References bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::remap_matrix1_.

## ◆ insert() [1/2]

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>
template<typename StrType >

void bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::insert | ( | size_type | idx,
|  | const StrType & | str
| ) |  |
| inline

insert STL string

Parameters

  idx | - element index (vector auto-resized if needs to)
  str | - STL string to set

Definition at line 459 of file bmstrsparsevec.h.

References bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::insert().

## ◆ insert() [2/2]

template<class CharType , class BV , unsigned MAX_STR_SIZE>

void bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::insert | ( | size_type | idx,
|  | const value_type * | str
| ) |  |

insert the specified element

Parameters

  idx | - element index (vector auto-resized if needs to)
  str | - string to set (zero terminated)

Examples
  strsvsample01.cpp, and strsvsample02.cpp.

Definition at line 1169 of file bmstrsparsevec.h.

Referenced by bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::insert(), insertion_sort(), and main().

## ◆ insert_value()

template<class CharType , class BV , unsigned MAX_STR_SIZE>

void bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::insert_value | ( | size_type | idx,
|  | const value_type * | str
| ) |  |
| protected

insert value without checking boundaries

Definition at line 1253 of file bmstrsparsevec.h.

## ◆ insert_value_no_null()

template<class CharType , class BV , unsigned MAX_STR_SIZE>

void bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::insert_value_no_null | ( | size_type | idx,
|  | const value_type * | str
| ) |  |
| protected

insert value without checking boundaries or support of NULL

Definition at line 1263 of file bmstrsparsevec.h.

References BM_ASSERT.

## ◆ is_compressed()

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

static bool bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::is_compressed | ( |  | ) |
| inlinestatic

trait if sparse vector is "compressed" (false)

Definition at line 735 of file bmstrsparsevec.h.

## ◆ is_remap()

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

bool bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::is_remap | ( |  | ) | const
| inline

Get remapping status (true|false)

Definition at line 750 of file bmstrsparsevec.h.

References bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::remap_flags_.

Referenced by bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::remap_from().

## ◆ max_str()

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

static size_type bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::max_str | ( |  | ) |
| inlinestatic

get maximum string length capacity

Returns
  maximum string length sparse vector can take

Definition at line 652 of file bmstrsparsevec.h.

References bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::sv_octet_plains.

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

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

str_sparse_vector<CharType, BV, MAX_STR_SIZE>& bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::operator= | ( | const str_sparse_vector< CharType, BV, MAX_STR_SIZE > & | str_sv | ) |
| inline

copy assignmment operator

Definition at line 385 of file bmstrsparsevec.h.

References bm::base_sparse_vector< CharType, BV, MAX_STR_SIZE >::copy_from(), bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::remap_flags_, bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::remap_matrix1_, and bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::remap_matrix2_.

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

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

str_sparse_vector<CharType, BV, MAX_STR_SIZE>& bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::operator= | ( | str_sparse_vector< CharType, BV, MAX_STR_SIZE > && | str_sv | ) |
| inline

move assignmment operator

Definition at line 407 of file bmstrsparsevec.h.

References bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::swap().

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

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

reference bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::operator[] | ( | size_type | idx | ) |
| inline

Operator to get write access to an element

Definition at line 424 of file bmstrsparsevec.h.

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

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

const_reference bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::operator[] | ( | size_type | idx | ) | const
| inline

Operator to get read access to an element

Definition at line 427 of file bmstrsparsevec.h.

References bm::base_sparse_vector< CharType, BV, MAX_STR_SIZE >::const_reference.

## ◆ optimize()

template<class CharType , class BV , unsigned MAX_STR_SIZE>

void bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::optimize | ( | bm::word_t * | temp_block = `0`,
|  | typename bvector_type::optmode | opt_mode = `bvector_type::opt_compress`,
|  | typename str_sparse_vector< CharType, BV, MAX_STR_SIZE >::statistics * | stat = `0`
| ) |  |

run memory optimization for all vector plains

Parameters

  temp_block | - pre-allocated memory block to avoid unnecessary re-allocs
  opt_mode | - requested compression depth
  stat | - memory allocation statistics after optimization

Examples
  strsvsample01.cpp, strsvsample02.cpp, strsvsample03.cpp, strsvsample05.cpp, and xsample05.cpp.

Definition at line 1323 of file bmstrsparsevec.h.

References bm::bv_statistics::add().

Referenced by main().

## ◆ push_back() [1/2]

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>
template<typename StrType >

void bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::push_back | ( | const StrType & | str | ) |
| inline

push back a string

Parameters

  str | - string to set (STL class with size() support, like basic_string)

Examples
  strsvsample01.cpp, strsvsample04.cpp, and xsample05.cpp.

Definition at line 532 of file bmstrsparsevec.h.

References bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::assign(), and bm::base_sparse_vector< CharType, BV, MAX_STR_SIZE >::size_.

Referenced by main().

## ◆ push_back() [2/2]

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

void bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::push_back | ( | const value_type * | str | ) |
| inline

push back a string (zero terminated)

Parameters

  str | - string to set

Definition at line 538 of file bmstrsparsevec.h.

References bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::set(), and bm::base_sparse_vector< CharType, BV, MAX_STR_SIZE >::size_.

## ◆ recalc_remap_matrix2()

template<class CharType , class BV , unsigned MAX_STR_SIZE>

void bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::recalc_remap_matrix2

re-calculate remap matrix2 based on matrix1

Definition at line 1516 of file bmstrsparsevec.h.

References BM_ASSERT.

## ◆ remap_from()

template<class CharType , class BV , unsigned MAX_STR_SIZE>

void bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::remap_from | ( | const str_sparse_vector< CharType, BV, MAX_STR_SIZE > & | str_sv | ) |

Build remapping profile and load content from another sparse vector.

Parameters

  str_sv | - source sparse vector (assumed it is not remapped)

Examples
  strsvsample03.cpp, strsvsample05.cpp, and xsample05.cpp.

Definition at line 1600 of file bmstrsparsevec.h.

References bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::build_octet_remap(), bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::calc_octet_stat(), bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::decode(), bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::empty(), and bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::is_remap().

Referenced by main().

## ◆ remap_fromsv()

template<class CharType , class BV , unsigned MAX_STR_SIZE>

bool bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::remap_fromsv | ( | value_type *BMRESTRICT | str,
|  | size_type | buf_size,
|  | const value_type *BMRESTRICT | sv_str,
|  | const plain_octet_matrix_type &BMRESTRICT | octet_remap_matrix1
| ) |  |
| static

remap string from internal code to external (ASCII) system

Returns
  true if remapping was ok, false if found incorrect value for the plain

Definition at line 1570 of file bmstrsparsevec.h.

## ◆ remap_size()

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

size_t bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::remap_size | ( |  | ) | const
| inlineprotected

Definition at line 1089 of file bmstrsparsevec.h.

References bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::remap_matrix1_.

## ◆ remap_tosv() [1/2]

template<class CharType , class BV , unsigned MAX_STR_SIZE>

bool bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::remap_tosv | ( | value_type *BMRESTRICT | sv_str,
|  | size_type | buf_size,
|  | const value_type *BMRESTRICT | str,
|  | const plain_octet_matrix_type &BMRESTRICT | octet_remap_matrix2
| ) |  |
| static

remap string from external (ASCII) system to matrix internal code

Returns
  true if remapping was ok, false if found incorrect value for the plain

Definition at line 1542 of file bmstrsparsevec.h.

Referenced by bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::remap_tosv().

## ◆ remap_tosv() [2/2]

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

bool bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::remap_tosv | ( | value_type * | sv_str,
|  | size_type | buf_size,
|  | const value_type * | str
| ) |  | const
| inline

remap string from external (ASCII) system to matrix internal code

Definition at line 786 of file bmstrsparsevec.h.

References bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::remap_matrix2_, and bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::remap_tosv().

## ◆ resize()

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

void bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::resize | ( | size_type | sz | ) |
| inline

resize vector

Parameters

  sz | - new size

Definition at line 647 of file bmstrsparsevec.h.

References bm::base_sparse_vector< CharType, BV, MAX_STR_SIZE >::resize().

Referenced by bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::resize_internal().

## ◆ resize_internal()

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

void bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::resize_internal | ( | size_type | sz | ) |
| inlineprotected

Definition at line 1087 of file bmstrsparsevec.h.

References bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::resize().

## ◆ resolve_range()

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

bool bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::resolve_range | ( | size_type | from,
|  | size_type | to,
|  | size_type * | idx_from,
|  | size_type * | idx_to
| ) |  | const
| inlineprotected

Definition at line 1101 of file bmstrsparsevec.h.

## ◆ set()

template<class CharType , class BV , unsigned MAX_STR_SIZE>

void bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::set | ( | size_type | idx,
|  | const value_type * | str
| ) |  |

set specified element with bounds checking and automatic resize

Parameters

  idx | - element index (vector auto-resized if needs to)
  str | - string to set (zero terminated)

Examples
  strsvsample01.cpp, and strsvsample04.cpp.

Definition at line 1158 of file bmstrsparsevec.h.

Referenced by main(), and bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::push_back().

## ◆ set_null()

template<class CharType , class BV , unsigned MAX_STR_SIZE>

void bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::set_null | ( | size_type | idx | ) |

set NULL status for the specified element Vector is resized automatically

Parameters

  idx | - element index (vector auto-resized if needs to)

Examples
  strsvsample04.cpp.

Definition at line 1197 of file bmstrsparsevec.h.

Referenced by bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::clear_range(), and main().

## ◆ set_remap()

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

void bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::set_remap | ( |  | ) |
| inlineprotected

Definition at line 1097 of file bmstrsparsevec.h.

References bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::remap_flags_.

## ◆ set_value()

template<class CharType , class BV , unsigned MAX_STR_SIZE>

void bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::set_value | ( | size_type | idx,
|  | const value_type * | str
| ) |  |
| protected

set value without checking boundaries

Definition at line 1211 of file bmstrsparsevec.h.

## ◆ set_value_no_null()

template<class CharType , class BV , unsigned MAX_STR_SIZE>

void bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::set_value_no_null | ( | size_type | idx,
|  | const value_type * | str
| ) |  |
| protected

set value without checking boundaries or support of NULL

Definition at line 1223 of file bmstrsparsevec.h.

References BM_ASSERT.

## ◆ size()

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

size_type bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::size | ( |  | ) | const
| inline

return size of the vector

Returns
  size of sparse vector

Examples
  strsvsample01.cpp, strsvsample04.cpp, and xsample05.cpp.

Definition at line 637 of file bmstrsparsevec.h.

References bm::base_sparse_vector< CharType, BV, MAX_STR_SIZE >::size_.

Referenced by bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::assign(), check_sparse(), bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::copy_range(), bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::decode(), bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::effective_size(), bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::empty(), bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::import_back(), bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::import_no_check(), main(), and bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::size_internal().

## ◆ size_internal()

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

size_type bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::size_internal | ( |  | ) | const
| inlineprotected

Definition at line 1086 of file bmstrsparsevec.h.

References bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::size().

## ◆ swap()

template<class CharType , class BV , unsigned MAX_STR_SIZE>

void bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::swap | ( | str_sparse_vector< CharType, BV, MAX_STR_SIZE > & | str_sv | ) |

Swap content

Examples
  xsample05.cpp.

Definition at line 1146 of file bmstrsparsevec.h.

References bm::xor_swap().

Referenced by main(), and bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::operator=().

## ◆ sync()

template<class CharType , class BV , unsigned MAX_STR_SIZE>

void bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::sync | ( | bool | force | ) |

syncronize internal structures

Definition at line 1640 of file bmstrsparsevec.h.

## ◆ throw_bad_value()

template<class CharType , class BV , unsigned MAX_STR_SIZE>

void bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::throw_bad_value | ( | const char * | err_msg | ) |
| staticprotected

throw domain error

Definition at line 1731 of file bmstrsparsevec.h.

References BM_ASSERT_THROW.

Referenced by bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::get(), and bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::import_no_check().

## ◆ throw_range_error()

template<class CharType , class BV , unsigned MAX_STR_SIZE>

void bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::throw_range_error | ( | const char * | err_msg | ) |
| staticprotected

throw range error

Definition at line 1718 of file bmstrsparsevec.h.

References BM_ASSERT_THROW.

## Friends And Related Function Documentation

## ◆ sparse_vector_deserializer

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>
template<class SVect >

friend class sparse_vector_deserializer
| friend

Definition at line 1109 of file bmstrsparsevec.h.

## ◆ sparse_vector_serializer

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>
template<class SVect >

friend class sparse_vector_serializer
| friend

Definition at line 1108 of file bmstrsparsevec.h.

## Field Documentation

## ◆ bvector_type_const_ptr

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

const typedef bvector_type* bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::bvector_type_const_ptr

Definition at line 61 of file bmstrsparsevec.h.

## ◆ remap_flags_

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

unsigned bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::remap_flags_
| protected

remapping status

Definition at line 1112 of file bmstrsparsevec.h.

Referenced by bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::assign(), bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::copy_range(), bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::decode(), bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::get(), bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::import_no_check(), bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::is_remap(), bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::operator=(), bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::set_remap(), and bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::str_sparse_vector().

## ◆ remap_matrix1_

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

plain_octet_matrix_type bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::remap_matrix1_
| protected

octet remap table 1

Definition at line 1113 of file bmstrsparsevec.h.

Referenced by bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::copy_range(), bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::decode(), bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::get(), bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::get_remap_buffer(), bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::init_remap_buffer(), bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::operator=(), bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::remap_size(), and bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::str_sparse_vector().

## ◆ remap_matrix2_

template<typename CharType , typename BV , unsigned MAX_STR_SIZE>

plain_octet_matrix_type bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::remap_matrix2_
| protected

octet remap table 2

Definition at line 1114 of file bmstrsparsevec.h.

Referenced by bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::assign(), bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::copy_range(), bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::import_no_check(), bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::operator=(), bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::remap_tosv(), and bm::str_sparse_vector< CharType, BV, MAX_STR_SIZE >::str_sparse_vector().

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

- bmstrsparsevec.h