我正在寻找一种使用 STL 容器(例如,std::vector)来获得在内存中连续的 Matrix 变量(即,一堆有序的列向量)的方法。一种选择是:
vector< vector<float> > mat;
mat.push_back (column1); // column1 is of type vector<float>
mat.push_back (column2); // column2 is of type vector<float>
&mat[1][0]
这在不等于的意义上是不连续的&mat[0][N-1] + 1
,其中N
是 的长度column1
。
另一种选择是:
vector< float > mat;
float f1[] = {1., 2., 3.};
float f2[] = {4., 5., 6.};
mat.insert (mat.end (), f1, f1 + 3);
mat.insert (mat.end (), f2, f2 + 3);
这在内存中是连续的,但强制我使用浮点数组。
编辑
为了清楚起见,我更喜欢类似的选项vector < vector<float> >
,因此我可以将给定的列作为 STL 向量访问。