Я пытаюсь создать вектор состоящий из векторов целых чисел, где в каждом из N элементов, есть три различных элемента. При запуске данного кода выходит следующая ошибка.
Ошибка исполнения, код возврата -1073741819
int main() {
int N;
int a, b , c;
cin >> N;
vector<vector<int>> v;
for (int i = 0; i < N; i++) {
cin >> a >> b >> c;
v[i][1] = a;
v[i][2] = b;
v[i][3] = c;
}
return 0;
}
Я бы даже сделал так:
int main() {
int N;
cin >> N;
vector<vector<int>> v(N,vector<int>(4));
for (int i = 0; i < N; i++) {
cin >> v[i][1] >> v[i][2] >> v[i][3];
}
}
Надеюсь, вы помните, что нумерация элементов вектора идет с нуля, и отсутствие у вас присвоения v[i][0] не ошибка, и вы знаете, что делаете...
конечно будет ошибка. Потому что вектора имеют нулевой размер.
И есть два способа исправить
int main() {
int N;
int a, b , c;
cin >> N;
vector<vector<int>> v;
v.resize(N);
for (int i = 0; i < N; i++) {
cin >> a >> b >> c;
v[i].resize(3);
v[i][0] = a;
v[i][1] = b;
v[i][2] = c;
}
return 0;
}
второй - использовать push_back.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей