外部记忆向量

1 c++ data-structures stxxl

我正在开发一个外部存储器数据结构,我需要将数据放入一个自动进行交换的矢量结构(可能使用LRU策略)以保持固定的RAM存储器.我已经尝试过stxxl向量结构,但问题是它无法存储动态结构std::vector.这不起作用:

stxxl::vector< std::vector<T> >
Run Code Online (Sandbox Code Playgroud)

是否有任何外部存储器结构库可以处理这些元素?

ch0*_*kee 6

模板参数stxxl::vector是包含项的类型,但std::vector不是类型,它缺少它的模板参数.

如果要参数化itemtype,请尝试例如stxxl::vector<std::vector<int> >,或创建一个封闭的模板类.stxxl::vectorstd::vector

更新:经过一些研究,我在Stxxl:FAQ的第一页 http://algo2.iti.kit.edu/stxxl/trunk/FAQ.html上找到了这个.

参数化STXXL容器

像stxxl :: vector这样的STXXL容器类型只能使用值为POD的值类型(即没有虚函数,没有用户定义的复制赋值/析构函数等)进行参数化,并且不包含对内部存储器的引用(包括指针) .通常,"复杂"数据类型不满足此要求.

这就是原因stxxl::vector<std::vector<T> >, stxxl::vector<stxxl::vector<T> >也是无效的.如果合适,std::vector<stxxl::vector<T> >通过索引计算使用 或模拟二维数组.