2015-04-14 154 views
-1

請問您能告訴我什麼導致了這段代碼中的分段錯誤 注意:這是TopCoder問題的解決方案。是什麼導致分割錯誤?

class GridGenerator{ 
public: 
int generate(vector <int> row, vector <int> col){ 
int i,j; 
int n=col.size(); 
vector<vector<int>>vec; 
    for(i=0;i<n;i++) 
     { 
      vec[0][i]=col[i]; 
      vec[i][0]=row[i]; 
     } 
for(i=1;i<n;i++) 
{ 
    for(j=1;j<n;j++) 
     vec[i][j]=vec[i-1][j]+vec[i][j-1]+vec[i-1][j-1]; 
} 
return vec[n-1][n-1]; 
} 
}; 

回答

6

vector<vector<int>>vec;聲明瞭一個空載體,訪問元件在它是未定義的行爲,因爲它沒有任何元素,開始了。

+0

OP想要說'vector > vec(n,vector (n));'。你能否把它添加到你的答案? – AndyG

+1

@AndyG我想過了,沒有。這將會適得其反。我認爲如果他自己查看矢量初始化,他會更好。 :) –

+0

非常感謝你和抱歉你的時間:) – BaherZ