1

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第二次运行(如果文件未删除)等时输出。

我怎样才能为 a 做同样的事情stxxl::map?我在文档中看不到任何与stxxl::files 有任何关系的函数。

具体来说,我想在磁盘上指定存储地图的位置,而不是 stxxl 通常执行的位置,这样我就可以破坏实例,创建一个新实例,并让它已经包含与被破坏实例相同的数据(即stxxl::map使用 stxxl 已经存在的磁盘存储机制来持久化 's 的数据)。

4

0 回答 0