我正在创建一个 gridcell 类,它基本上是一个多单元格数组。我希望这个网格单元有任意数量的维度。这意味着在 boost::multiarray 变量的声明中我不能指定模板的第二个参数。具体来说,我的代码如下所示:
#include "cell.h"
#include <iostream>
#include <vector>
#include <boost/multi_array.hpp>
class GridCell {
public:
GridCell(); // Default constructor not used.
GridCell(const std::vector<int> dims, const float leafsize);
virtual ~GridCell();
friend std::ostream& operator << (std::ostream & os, const GridCell & c);
private:
std::vector<int> dims_; // Vector containing the size of each dimension.
float leafsize_; // It is assumed that the cells in the grid are cubic.
boost::multi_array<Cell,ndims> * grid;
};
具体来说, boost::multi_array * grid; 我希望它在 Gridcell 类构造函数中指定的维数。
有什么建议或替代方案吗?
非常感谢你!