我想实现一个函数,该函数获取整数数组的维度“n”作为参数。此函数还获取定义数组大小的值“k_1、k_2、...、k_n”。然后这个函数将填充这个 n 维数组。
我如何使用 C++ 高效地实现它?
例如对于 n = 3 我会使用
vector < vector < vector < int > > > array;
但是我不知道编译时的维度。
最佳答案
使用一维数组,并使用偏移量的乘法来伪造其他维度进行索引,您可以通过 vector 传递维度大小,即
std::vector<int> create_md_array(const std::vector<int> & dimensions)
{
int size = std::accumulate(dimensions.begin(), dimensions.end(), 1, std::multiplies<int>());
return std::vector<int>(size);
}
关于c++ - 如果维度在编译时未知,如何实现多维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4876845/