Укажите местоположение для хранения stxxl::map/persist свои данные?

stxxl::vector имеет конструктор, где вы можете предоставить stxxl::file *, Это связывает вектор с этим конкретным файлом:

typedef stxxl::VECTOR_GENERATOR<int>::result stxxl_vector_int;
{
    stxxl::syscall_file f("some_vec.bin", stxxl::file::RDWR | stxxl::file::CREAT);
    stxxl_vector_int vec = stxxl_vector_int(&f);
    vec.push_back(1);
}
{
    stxxl::syscall_file f("some_vec.bin", stxxl::file::RDWR | stxxl::file::CREAT);
    stxxl_vector_int vec = stxxl_vector_int(&f);
    std::cout << vec.size() << std::endl;
}

Это выводы 1 на первом запуске, 2 при втором запуске (если файл не был удален) и т. д.

Как я могу сделать то же самое для stxxl::map? Я не вижу никаких функций в документах, которые имеют какое-либо отношение к stxxl::files.

В частности, я хочу указать место на диске, где хранится карта, вместо того, где обычно это делает stxxl, чтобы я мог уничтожить экземпляр, создать новый, и он уже содержал те же данные, что и уничтоженный экземпляр (т.е. сохраняться stxxl::mapданные с использованием уже существующих механизмов хранения дисков stxxl).

0 ответов

Другие вопросы по тегам