Я хочу взять данные от пользователя для 2D-матрицы 2D-вектором. Но пока я делаю, как показано ниже, программа разбилась !!! Но почему?Инициализация 2D-вектора в C++
int m, n;
cin>>m>>n;
vector<vector<int> > v;
for(int i=0; i<m; i++)
{
for(int j=0; j<n; j++)
{
int a;
cin>>a;
v[i].push_back(a);
}
}
Каким будет решение в соответствии с моим кодом.
Он работает. Можете ли вы, пожалуйста, дать мне подробную информацию и почему я должен push_back вектор ?? –
@NafeeurRahman Потому что вы не нажимали ничего на 'v', и он просто пуст. 'v' - 2-й вектор. – songyuanyao
@NafeeurRahman Если вектор 'v' пуст, то доступ к' v [i] 'для любого' i' будет пытаться получить доступ к памяти за пределами выделенного хранилища (если есть) для элементов 'v', что является неопределенным поведением. Для аналогии это похоже на случай, когда у вас есть 'int v [10];' и вы пытаетесь получить доступ к 'v [99]'. – jotik