簡體   English   中英

在main()c ++中輸入2D向量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM