我正在研究一个由2D矢量双精度构成的C++类。我即将创建2D矢量,但当我尝试编辑其中的值时,程序崩溃。我试过使用[] []运算符并将其设置为等于myDub,并且我尝试使用像myMat.editSlot(i,j,myDub)这样的类,并且都导致程序崩溃。2D矢量双编辑导致崩溃
// n ==可行和cols#(所有矩阵是方形的) // INFILE打开文件正确
mat my_mat(n,n);
// Read input data
for (int i=0; i<n; i++) {
for (int j=0; j<n; j++) {
double myDub;
inFile >> myDub;
my_mat.editSlot(i,j,myDub);
}
}
这里是类:
class mat
{
mat(int x , int y) {
int row = x;
int col = y;
vector<vector<double>> A(row , vector<double>(row , 0));
for (int i = 0; i<row; i++)
{
for (int j = 0; j<col; j++)
{
cout << setw(6) << A[i][j];
}
cout << endl;
}
}
void editSlot(int x , int y , double val) {
A[x][y] = val;
}
vector<vector<double>> A;
private:
int n;
};
请创建一个[最小,完整和可验证示例](http://stackoverflow.com/help/mcve)向我们展示。希望*建立*。 –
哦,你应该考虑在哪里声明'A'的位置。 *和*如果'row!= col'会发生什么(考虑到*** local变量'A'的初始化)。 –
也许你打算让矢量具有“col”列,而不是“row”列 –