[英]input 2D vector in main() c++
我是向量的新手,我嘗試在main()函數中輸入此2D向量,但無法這樣做。
int main()
{
int t, x, n;
cin>>n;
vector< vector <int> > jail(n);
for(int i=0; i<n; i++){
jail[i].reserve(n);
for(int j=0; j<n; j++){
cin>>jail[i][j];
}
}
cout<< jailBreak(jail,n-1,0,0)<<endl;
}
運行時錯誤是我需要在程序的開頭輸入垃圾輸入。 這種模糊的輸入已經困擾我很長時間了,事先感謝thanx的任何建議。
這行:
jail[i].reserve(n);
只是告訴vector
預分配內存(這只是在push_back
操作上優化進一步重新分配的提示,但不能保證分配)。 您必須改用resize
來真正分配內存。
在您的代碼中:
for(int i=0; i<n; i++){
jail[i].reserve(n);
for(int j=0; j<n; j++){
cin>>jail[i][j];
}
}
jail[i].reserve(n);
應該是jail[i].resize(n)
cin>>jail[i][j]
從未見過這項工作。 cin
進入臨時位置,然后推動。
int temp;
std::cin >> temp;
jail[i].emplace_back(temp);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.