我正在创建一个程序来获取矩阵,该函数调用 matrixname .loadMatrix(),然后从那里使用它。但是,我被构造函数绊倒了。我有:
构造
Matrix Matrix(int row, int col){
int v;
for(int i=0; i<row; i++){
for(int j=0; j<col; j++){
fin >>v;
M.setElement(i, j, v);
}
}
}
和函数loadMatrix:
Matrix Test::loadMatrix(std::string filename){
std::ifstream fin(filename);
int r;
int c;
fin >>r;
fin >>c;
return Matrix M(r, c);
}
我的问题是我应该在构造函数中执行所有 fin&gt;&gt; 吗?或者这会起作用吗?我现在无法编译并进行反复试验,因为我在计算机无法使用的情况下正在使用我的平板电脑。
答案 0 :(得分:0)
fin在函数loadMatrix中是局部的..它在Matrix构造函数中未定义
答案 1 :(得分:0)
fin 在Matrix构造函数的范围内声明,因此不是这样做的。
您是否可以将所有内容都读入一维数组,然后通过引用将数组作为内部数据传递给Matrix?您如何查看数据取决于您,但这两种方法称为行专业和专栏
从维基百科中获取的2x3矩阵的行主要存储的示例是
int[6] = {0,1,2,3,4,5}
^ ^
其中每个新行对应于每个第3个元素。
列的主要存储空间
int[6] = {0,3,1,4,2,5}
^ ^ ^
其中每个第2个元素对应一列。