次のような配列があるとしましょう:
1 0 0
0 2 1
0 1 0
そのため、2 を超える数が 0 かどうかを確認し、真であれば 2 に変更したいと思います。i = 1 および j = 1 と仮定すると、次のようになります。
string var = "2";
if(tab[i][j] == var && tab[i-1][j] == "0") {
tab[i-1][j] = "2";
}
ここでセグメント違反が発生します。if ステートメントで 0 を 1 に変更すると、正常に動作します。なんで?2 次元配列を int にしようとしても、同じ問題が発生しました。
「0」を「0」に、またはその逆に変更 = 同じ問題。
for(int i = 0; i < n; i++) {
vector<string> current_row;
for(int j =0; j < m; j++) {
myfile >> buff;
current_row.push_back(buff);
}
tab.push_back(current_row);
}
それが私がそれを移入する方法です。