以下のコードを見ていただきたいのですが、
C++
1#include<iostream> 2#include<vector> 3using namespace std; 4 5int main(){ 6 int N, M; 7 cin >> N >> M; 8 9 vector<vector<char>> table(N, vector<char>(N, '-')); 10 vector<vector<int>> result(M, vector<int>(2, 0)); 11 12 for (int i = 0; i < M; i++){ 13 for (int j = 0; j < 2; j++){ 14 cin >> result.at(i).at(0) >> result.at(i).at(1); 15 } 16 } 17 18 for (int i = 0; i < M; i++){ 19 table.at(result.at(M).at(0)-1).at(result.at(M).at(1)-1) = 'o'; 20 table.at(result.at(M).at(1)-1).at(result.at(M).at(0)-1) = 'x'; 21 } 22 23 for (int i = 0; i < N; i++){ 24 for (int j = 0; j < N; j++){ 25 cout << table.at(i).at(j) << " "; 26 } 27 cout << endl; 28 } 29}
こちら入力を
7 12 1 5 5 4 6 2 1 7 2 4 6 3 1 3 6 4 3 7 5 7 4 3 6 1
のようにし、実行すると
terminate called after throwing an instance of 'std::out_of_range' what(): vector::_M_range_check: __n (which is 12) >= this->size() (which is 12)
というエラーが出てしまいます。
なぜレンジエラーが出てしまうのでしょう...
ご指摘お願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/03 05:40
2020/03/03 05:43