我正在开发一个外部存储器数据结构,我需要将数据放入一个自动进行交换的矢量结构(可能使用LRU策略)以保持固定的RAM存储器。我尝试过stxxl向量结构,但问题是它无法存储像std::vector
这样的动态结构。这不起作用:
stxxl::vector< std::vector<T> >
是否有任何外部存储器结构库可以处理这些元素?
答案 0 :(得分:6)
stxxl::vector
的模板参数是包含项的类型,
但是std::vector
不是一个类型,它缺少它的模板参数。
尝试例如stxxl::vector<std::vector<int> >
,或创建
如果您愿意,可以在stxxl::vector
周围附上一个封闭的模板类
参数化std::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> >
,或模拟二维数组 做指数计算。