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