Вы явно не инициализировали своего std::vector<int> listInt
участника. Это означает, что будет использован конструктор по умолчанию std::vector<int>
. Инициализирует вектор с начальным размером 0 , поэтому доступ к нему с индексом 0
недопустим.
Чтобы задать начальный размер для вашего списка, вы должны сделать:
Class1::Class1() : listInt(/* the initial size */) { ... }
Это дает вам вектор с размером /* the initial size */
и всеми элементами, инициализированными в ноль.
Если вы хотите изменить размер путем динамического добавления элементов, используйте push_back
или emplace_back
:
listInt.push_back(/* element to add */);
listInt.emplace_back(/* element to add */);
Оба добавляют элемент в конец вектора и увеличивают размер вектора на единицу.
Разница в том, что emplace_back
создает новый элемент на месте, используя переданные ему параметры, но push_back
всегда копирует (или перемещает) элемент. В вашем случае (std::vector<int>
) они не имеют значения.