這是我的代碼的一部分,現在它的唯一活動部分,因爲剩下的部分被註釋掉了,我試圖創建一個堆棧向量,堆疊高10的板,然後創建一個新的堆棧。這是我第一次使用stacks,所以我不知道我是否正確地聲明瞭矢量或任何..爲什麼我得到矢量下標超出範圍?
但更重要的是,每當我嘗試通過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
你的載體是空的。在你使用'plates [x]'之前,你必須在其中放入一些元素。 – Galik