#include <iostream>
#include <vector>
#include "bm.h"
#include "bmsparsevec.h"
#include "bmundef.h"
using namespace std;
int main(void)
{
bm::sparse_vector<unsigned, bm::bvector<> > sv1;
bm::sparse_vector<unsigned, bm::bvector<> > sv2;
unsigned i;
unsigned arr[3] = {1,2,3};
sv1.import(arr, 3);
{
BM_DECLARE_TEMP_BLOCK(tb)
sv1.optimize(tb);
}
cout << "sv1.size() = " << sv1.size() << ": ";
for (i = 0; i < sv1.size(); ++i)
{
cout << sv1.at(i) << ",";
}
cout << endl;
for (i = 65536; i < 65536+10; ++i)
{
sv2.set(i, 256+i);
}
cout << "sv2.size() = " << sv2.size() << endl;
cout << "Perform sparse_vector<>::join()" << endl;
sv1.join(sv2);
sv1.optimize();
cout << "Now sv1.size() = " << sv1.size() << endl;
std::vector<unsigned> v1(16);
sv1.decode(&v1[0], 65530, 16); for (i = 0; i < 16; ++i)
{
cout << v1[i] << ",";
}
cout << endl;
return 0;
}