簡體   English   中英

打印時 c++ 中的二維矢量出現問題

[英]Problem with 2D vector in c++ when printing

class Vertex {
    public:
    int dist, num;
    vector<Vertex*> edges;
    Vertex() {}
    Vertex(int num) : num(num) {}
};
class K {
public:
    void updateMatrix(vector<vector<int>>& matrix) {
        vector<vector<Vertex>> vec;
        for (vector<int> in : matrix) { 
            vector<Vertex> neu;
            vec.push_back(neu);
            for (int i : in) {
                Vertex k(i);
                cout << k.num;
                neu.push_back(k);
            }
        }
        for (vector<Vertex> in : vec) {
            for (Vertex i : in) cout << i.num << " ";
            cout << endl;
        }
    }
};

當我用有效的 2D 向量調用 function 時,當我嘗試打印vec時,output 只有 3 個空行。 我怎樣才能解決這個問題?

vec.push_back(neu); 將(空)變量neu副本放入vec 在此之后對neu的更改不會影響副本。

您應該將其移至內部循環之后。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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