【发布时间】:2014-06-20 07:57:14
【问题描述】:
在运行时指定维数的 C++ 中是否有可用的多维数组实现?基本上,我正在寻找这样的东西:
// create a 4 dimensional array
int num_dim = 4;
int sizes[4] = {3, 2, 4, 5}; // size for each dimension
MultiArray<int> A( num_dim, sizes );
// accessing a element in the array
int index[4] = {2, 2, 1, 0};
A[index] = 3;
编辑:
请注意,我不想使用std::vector<std::vector<...>> 或boost::multi_array,因为我事先不知道维度的数量。
【问题讨论】:
-
std::vector<int>来救援!另外,boost::multi_array -
问题是我事先不知道维数。我正在寻找更灵活的东西。
-
请注意,您始终可以使用自己的类包装 boost multi_array。你的类可以在构造时构造一个 multi_array 并使用它的 operator[] 访问它。
-
@YuchenZhong:你真的是指维度的数量,而不仅仅是它们的大小吗?
-
这可能是XY Problem 吗?为什么需要这个?