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