Example of how to serialize bm::sparse_vector<> template class.
#include <iostream>
#include <vector>
using namespace std;
{
try
{
for (unsigned i = 0; i < 128000; ++i)
{
}
const unsigned char* buf = sv_lay.
buf();
size_t buf_size = sv_lay.
size();
vector<unsigned char> tmp_buf(buf_size);
::memcpy(&tmp_buf[0], buf, buf_size);
if (res != 0)
{
cerr << "De-Serialization error!" << endl;
return 1;
}
{
cerr << "Error! Please report a bug to BitMagic project support." << endl;
return 1;
}
cout << sv2.
size() << 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.
#define BM_DECLARE_TEMP_BLOCK(x)
Sparse constainer sparse_vector<> for integer types using bit-transposition transform.
Serialization for sparse_vector<>
sparse vector with runtime compression using bit transposition method
bool equal(const sparse_vector< Val, BV > &sv, bm::null_support null_able=bm::use_null) const BMNOEXCEPT
check if another sparse vector has the same content and size
void push_back(value_type v)
push value back into vector
size_type size() const BMNOEXCEPT
return size of the vector
void optimize(bm::word_t *temp_block=0, typename bvector_type::optmode opt_mode=bvector_type::opt_compress, typename sparse_vector< Val, BV >::statistics *stat=0)
run memory optimization for all vector plains
void sparse_vector_serialize(const SV &sv, sparse_vector_serial_layout< SV > &sv_layout, bm::word_t *temp_block=0)
Serialize sparse vector into a memory buffer(s) structure.
int sparse_vector_deserialize(SV &sv, const unsigned char *buf, bm::word_t *temp_block=0)
Deserialize sparse vector.
layout class for serialization buffer structure
size_t size() const
return current serialized size
const unsigned char * buf() const
Return serialization buffer pointer.
bm::sparse_vector< unsigned, bm::bvector<> > svector