#include <iostream>
void test_vector_element(
uint64 size)
{
vector_type vec(size);
for (
uint64 i = 0; i < vec.size(); ++i)
vec[i] = (i % 1024);
for (
uint64 i = 0; i < vec.size(); ++i)
sum += vec[i];
std::cout << "sum: " << sum << std::endl;
}
void test_vector_iterator(
uint64 size)
{
vector_type vec(size);
for (vector_type::iterator it = vec.begin(); it != vec.end(); ++it, ++i)
*it = (i % 1024);
for (vector_type::const_iterator it = vec.begin(); it != vec.end(); ++it)
sum += *it;
std::cout << "sum: " << sum << std::endl;
}
void test_vector_buffered(
uint64 size)
{
vector_type vec(size);
vector_type::bufwriter_type writer(vec);
for (
uint64 i = 0; i < vec.size(); ++i)
writer << (i % 1024);
writer.finish();
for (vector_type::bufreader_type reader(vec); !reader.empty(); ++reader)
{
sum += *reader;
}
std::cout << "sum: " << sum << std::endl;
}
#if STXXL_HAVE_CXX11_RANGE_FOR_LOOP
void test_vector_cxx11(
uint64 size)
{
vector_type vec(size);
{
vector_type::bufwriter_type writer(vec);
for (
uint64 i = 0; i < vec.size(); ++i)
writer << (i % 1024);
}
for (auto it : vector_type::bufreader_type(vec))
{
sum += it;
}
std::cout << "sum: " << sum << std::endl;
}
#endif
int main(int argc, char* argv[])
{
int multi = (argc >= 2 ? atoi(argv[1]) : 64);
test_vector_element(size);
test_vector_iterator(size);
test_vector_buffered(size);
#if STXXL_HAVE_CXX11_RANGE_FOR_LOOP
test_vector_cxx11(size);
#endif
return 0;
}