これは私のコードの一部であり、残りの部分がコメントアウトされている唯一のアクティブな部分です。プレート10をスタックして新しいスタックを作成するスタックのベクトルを作成しようとしています。それは本当に私はベクトルを正しく宣言したかどうかわからないので、私は初めてスタックを使っています。ベクトル添字が範囲外になるのはなぜですか?
しかし、もっと重要なことに、私はforループを使ってスタックにアイテムをプッシュしようとすると、添字の範囲外の行: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
あなたのベクトルは空です。 'plates [x]'を使う前にいくつかの要素を入れなければなりません。 – Galik