您正在寻找的答案有两个部分,即
- 矩阵。
- 容纳所有这些矩阵的容器。
因此,对于矩阵:如果您打算进行线性代数运算,我建议您使用一些特殊的库,例如带有许多预定义矩阵函数(例如特征值、矩阵乘法等)的Armadillo 。如果它只是基本的 2D 数据存储而没有特殊操作,那么我建议使用向量的 STL 向量来表示您的矩阵。这些容器的大小是动态的(可以在执行期间随意更改)并且所有元素都可以通过索引访问。正如帕特里克所说,可以在这里找到更多信息:cppreference.com。
一个用 1 填充的 3x3 整数矩阵的示例是
std::vector< std::vector<int,int> > matrix(3,std::vector<int>(3,1));
然后,您必须将这些矩阵存储在某个地方。为此,这实际上取决于您的需求。最简单的解决方案是矩阵向量(实际上是向量的向量)。您的代码的行为与 R 中的完全一样,您将能够按索引访问矩阵。等效的 C++ 代码是
#include<vector>
using namespace std;
typedef vector< vector<int,int> > int_matrix_t;
...
vector<int_matrix_t> my_vector_of_matrices(10);
for (int i = 0; i<10; ++i) {
my_vector_of_matrices[i] = some_function_that_outputs_a_matrix(i);
}
但是还有很多其他容器可用。您应该调查此图表并自己选择!