我正在研究一個由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」列 –