旧的c风格的静态数组在作为参数传递时会非常麻烦,或者作为值返回。为此,新的std :: array非常方便。
但是对于多数组,std ::中没有任何内容,并且boost :: multi_array不是静态分配的。
当然,我可以做,比方说,
std::array<std::array<int,3>,2> my_array;
但是我觉得很长,它对应于倒置的内置声明
int my_array[2][3];
我只是想知道是否已经有一些&#34;库&#34;编码这样一个概念(二维或任何维度)
(对于后者,如果我是正确的,必须使用一些可变参数模板进行输入,例如。
multi_array<int,3,4> A;
multi_array<int,3,5,8> B;
multi_array<int,4,7,8,9,8,3> C; //this one being quite rare though
)
编辑:抱歉第一篇文章,我没有测试答案 0 :(得分:0)
对您的应用程序来说可能有点过分,但我已经使用Eigen库并认为它family of Matrix template classes可能适合您。一个例子:
Eigen::Matrix<float, 3, 2> a;
a(1,0) = 1.1;
a(0,1) = 17.5;
编辑1:哎呀,我不确定它是否支持N维矩阵。但对于二维的我知道它很好。
我认为您可以使用带有Eigen或std::array
的typedef来使您的类型更具可读性。