Укажите местоположение для хранения 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::file
s.
В частности, я хочу указать место на диске, где хранится карта, вместо того, где обычно это делает stxxl, чтобы я мог уничтожить экземпляр, создать новый, и он уже содержал те же данные, что и уничтоженный экземпляр (т.е. сохраняться stxxl::map
данные с использованием уже существующих механизмов хранения дисков stxxl).