Проблема заключается в том, что при использовании вектора вам необходимо назначить память для количества элементов, которые вы хотите сохранить. (Ну, используя массивы тоже, но это неявно при создании одного статически). Вы просто не можете идти вперед и говорить, что хотите сохранить что-то в коробке, когда нет окна.
Существует два способа создать пространство для этих элементов. Один использует конструктор, как в:
std::vector<int> myVector(100); // This makes room for a 100 elements
И использование функции для этой цели.
std::vector<int> myVector;
myVector.reserve(100); // This makes room for a 100 elements after the declaration
Так что оттуда, я думаю, вы можете понять, что будет дальше. Вам просто нужно освободить место для всего.
Я лично не использую Vector так сильно, потому что мне никогда не требовалось (чтобы мои собственные динамические списки в школе и в основном использовали это как мою библиотеку «Вектор»), но я определенно должен использовать его, когда это необходимо, потому что он предлагает много преимуществ.
Как известно, я знаю, что вы используете небезопасный способ доступа к данным в вашем векторе. Небезопасно, потому что он не может бросить на вас какие-либо исключения, чтобы поймать, если происходит ограниченный доступ.
std::vector<int> myVector(10);
myVector.at(0) = 0; // What I mean is that function, you can jut wrap it inside a try-catch to make it safer.
myVector[0] = 0; // Instead of this, of course.
Конечно, то есть итераторы и все, что вещи, которые должны быть более безопасными, но вы можете посмотреть далее на этом позже.
Можете ли вы добавить ошибку, которую задаете на свой вопрос, пожалуйста? –