सी ++ में 2 डी वैक्टर का उपयोग करने के लिए यह मेरा पहला समय है और ऐसा लगता है कि मैं वर्जित स्थान तक पहुंचने की कोशिश कर रहा हूं हालांकि लूप की अनुक्रमणिका आकार से कम है
int generate_(vector<int> row,vector<int> column)
{
int i=1,j=1,k=0,l=0;
vector<vector<int > >matrix;//2D vector
for(k=0,l=0;l<column.size();l++)
{
matrix[k][l]=row[l];
cout << matrix[k][l]<<endl;
}
for(k=0,l=0;l<row.size();l++)
matrix[l][k]=column[l];
for(i=1;i<row.size();i++)
{
for(j=1;j<column.size();j++)
{
matrix[i][j]=matrix[i][j-1]+matrix[i-1][j]+matrix[i-1][j-1];
}
}
return matrix[i-1][j-1];
}
उत्तर:
उत्तर № 1 के लिए 1मैट्रिक्स प्रारंभ नहीं किया गया है, इसमें कोई तत्व नहीं है इसलिए मैट्रिक्स [के] [एल] अपवाद उठाएगा
जवाब के लिए 0 № 2
समझना कि आपने मैट्रिक्स में डेटा को प्रारंभ करने का प्रयास किया है, लेकिन प्रारंभ करने से पहले आपको इस मैट्रिक्स के लिए स्मृति आवंटित करना होगा।
इस लाइन को बदलें
vector<vector<int > >matrix;//2D vector
सेवा मेरे
vector<vector<int > >matrix(column.size(), vector<int>(column.size(), 0));
के बराबर:
vector<int> intVector(column.size(), 0)
vector<vector<int > >matrix(column.size(), intVector);
[छवि www.stackover.com से कॉपी की गई, लेकिन मैंने मूल पोस्ट आईडी खो दी]