我有一个std矩阵A,例如
std::vector<std::vector<double> > A(9,std::vector<double>9);
并计算其逆i需要将其定义为大小[1 * 81]的双倍,例如
double newA[1*81];
是否有像 resize 这样的函数,我可以在没有for循环的情况下从矩阵转换为double?
提前致谢。
答案 0 :(得分:2)
不,你无法避免循环。
vector<double>
和double[]
之间的内存布局存在差异。 vector
实现为指向内存中其他位置的某些数据的指针,而double[9]
直接使用9个双倍空格。
这意味着vector<vector>
中的值在内存中不一定是连续的,而是在double[]
中,或者在double[][]
中。