2015-04-14 130 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