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