Это сегмент моего кода и единственная его активная часть прямо сейчас, когда остальная часть закомментирована, и я пытаюсь создать вектор стеков, который складывает плиты 10, а затем создает новый стек. Это мой первый опыт работы со стеками, поэтому я не знаю, правильно ли я объявил вектор или нет.Почему я получаю векторный индекс вне диапазона?
Но самое главное, когда я пытаюсь подтолкнуть элемент в стек через цикл for, я получаю сообщение об ошибке: vector индексом вне диапазона: 1234, и я не уверен, как я должен нажимать на стек или если есть способ использовать trains.push_back(). (Каждый раз, когда я пытаюсь push_back, я получаю сообщение об ошибке).
#include <stack>
#include <iostream>
using namespace std;
int main()
{
vector<stack<int>> plates;
int numPlates,plateColor;
int x = 0;
cout << "Enter number of Plates" << endl;
cin >> numPlates;
for (int i = 0; i < numPlates; i++) {
if ((x + 1) % 10 == 0) // once plates are stacked ten high, start new stack
x++;
cin >> plateColor;
plates[x].push(plateColor);
}
Вы не показываете где «поезд» определяются , Пожалуйста, опубликуйте [mcve]. – OldProgrammer
его должны быть тарелки .. я исправил его – alwaysLearning
Ваш вектор пуст. Вы должны поставить некоторые элементы там, прежде чем вы сможете использовать 'plate [x]'. – Galik