簡體   English   中英

如何克隆 c++ 中的鄰接表?

[英]How to clone adjacency list in c++?

我試圖在 c++ 中復制鄰接列表。但不可能這樣做。
我已經聲明使用:

vector<int> adj[N]; // N is the number of vertices

如何在 c++ 中復制此列表?

我嘗試查找 web。但找不到任何答案。 求各位小伙伴解答一下這個問題。

我建議避免在 c++ 中使用舊的 c 樣式 arrays,僅支持std::vector (或std::array用於 static 大小的數組)。
您的鄰接列表可以使用以下方式實現:

std::vector<std::vector<int>> adj(N);

這是使用接受大小的std::vector構造函數,並使N成為動態的(而在您的代碼中,它必須在編譯時知道,因為 c++ 不支持 VLA - 可變長度數組)。

克隆很容易:

std::vector<std::vector<int>> clone = adj;

如果你必須使用 c 樣式數組,你可以克隆它:

vector<int> clone[N]; 
std::copy(std::begin(adj), std::end(adj), std::begin(clone));

附注:最好避免using namespace std - 請參閱此處為什么“使用命名空間標准;” 被認為是不好的做法? .

暫無
暫無

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

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