Здравствуйте, Данилович Алексей, Вы писали:
Для изменения размера вектора используется ф-я resize. Так же посмотри еще в сторону reserve.
Твои способы в принципе тоже корректны, но выглядят как-то небычно что ли...
Что касается ошибки — то скорее всего где-то вылез за пределы массива. Попробуй вместо operator[]
использовать at() — эта функция проверяет нидекс на валидность, и в случае чего кидает исключение:
vector<int> v;
v.resize(10);
v.at(10) = 0;//exception