Example of how to use bm::str_sparse_vector<> - succinct container for bit-transposed string collections with NULL (unassigned) values support.
Example of how to use bm::str_sparse_vector<> - succinct container for bit-transposed string collections with NULL (unassigned) values support
#include <iostream>
#include <string>
#include <vector>
using namespace std;
{
try
{
const char* s0 = "asz1234";
std::string str1 = "aqw1234";
std::string str3 = "54z";
std::string str00 = "00";
{
bi = "456";
bi = (const char*)0;
bi.flush();
}
std::cout <<
"sv size()=" << str_sv.
size() << endl;
{
if (str_sv[i].is_null())
cout << i << ":NULL" << endl;
else
{
const char* s = str_sv[i];
cout << i << ":" << s << endl;
}
}
cout << endl;
{
for (; it != it_end; ++it)
{
cout << "NULL" << endl;
else
cout << *it << endl;
}
}
}
catch(std::exception& ex)
{
std::cerr << ex.what() << std::endl;
return 1;
}
return 0;
}
Compressed bit-vector bvector<> container, set algebraic methods, traversal iterators.
string sparse vector based on bit-transposed matrix
void add_null()
add NULL (no-value) to the container
Const iterator to do quick traverse of the sparse vector.
bool is_null() const BMNOEXCEPT
Get NULL status.
sparse vector for strings with compression using bit transposition method
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)
back_insert_iterator get_back_inserter()
Provide back insert iterator Back insert iterator implements buffered insertion, which is faster,...
const_iterator end() const BMNOEXCEPT
Provide const iterator access to the end
void push_back(const StrType &str)
push back a string
bvector_type::size_type size_type
size_type size() const
return size of the vector
void set(size_type idx, const value_type *str)
set specified element with bounds checking and automatic resize
void set_null(size_type idx)
set NULL status for the specified element Vector is resized automatically
const_iterator begin() const BMNOEXCEPT
Provide const iterator access to container content
void assign(size_type idx, const StrType &str)
set specified element with bounds checking and automatic resize
@ use_null
support "non-assigned" or "NULL" logic
bm::str_sparse_vector< char, bvector_type, 32 > str_sv_type