Ошибка “vector subscript out of range” в цикле

306
08 марта 2017, 20:18

При компиляции (1) выдает (2). Что делать? Как бороться?

Answer 1

Вы не можете применять оператор индексирования к вектору, который еще не имеет элементов.

Поэтому вам следует написать перед циклами

cin >> str;
cin >> stb;
vect.resize(str, std::vector<int>(stb));

То есть сначала нужно создать элементы вектора, а затем лишь обращаться к ним по индексу.

Answer 2

Как вариант инициализации (при создании можешь размерность указать):

int a,b;
cin>>a>>b;
vector<vector <int> > mas(a,vector<int>(b));
size_t size = mas.size();
for(size_t i = 0; i < size; ++i){
    for_each(mas[i].begin(),mas[i].end(),[](int& k){cin>>k;});
}
READ ALSO
Другая компоновка в классе-потомке

Другая компоновка в классе-потомке

ЗдравствуйтеЕсть класс ComparisionTable, наследуемый от QWidget с виджетами: два QLabel и один QTableWidget

199
Парсинг JSON в Javascript из Python

Парсинг JSON в Javascript из Python

Передаю данные с сервераПолучаю дату на клиенте

312
Форма добавления вкладок в HTML+js [требует правки]

Форма добавления вкладок в HTML+js [требует правки]

Подскажите, как сделать такое меню добавления вкладок из списка, пожалуйста

202
Array.prototype.forEach - полифил

Array.prototype.forEach - полифил

В одном из учебников была задача:

336