因此,我正在嘗試編寫一個簡單的代碼,該代碼將從用戶獲取兩個字符串。然後它使用length()獲取字符串的長度,並基於長度創建一個ints的矩陣(2d向量)。然後我需要集中的最後一行和最後一列的值,如果輸入的字符串進行有2 權力的價值觀「快樂」 &「傷心」所產生的基質應該是:即使當下標處於範圍內時,2d向量下標也會超出範圍
0 0 0 0 0 6
0 0 0 0 0 4
0 0 0 0 0 2
10 8 6 4 2 0
我產生這樣的矩陣:
vector<vector<int>> opt;
unsigned int x, y;
x = (sequenceOne.length()) + 1;
y = (sequenceTwo.length()) + 1;
unsigned int p,q;
opt.resize(y, vector<int>(x, 0)); // resizes the matrix
當我嘗試改變矩陣值:
opt[2][2] = 5;
它工作正常,但是當我去訪問像這樣的最後一行最後一列:
opt[x][y]
它告訴我「表達:向量下標越界」 我認爲這是與該得到的字符串作爲值使用的長度,但我不能爲我的生活弄清楚爲什麼會導致一個問題。 我試圖使下標不同的變量,不同的順序,和東西像opt [x-1] [y-1],但錯誤仍然發生。
我不確定它是否重要,但我正在使用MS VS2012。
非常感謝。不知道我是如何忽略這一點的。這解決了這個問題。 – user3326004
不客氣!是的,可以很容易忽略這些事情。現在希望它會堅持下去。 :)有時需要一個很好的叮咬讓人們記住事情。 ,p – leetNightshade