我想在我的鏈接中有一些自定義數據。考慮stLINK是一些結構,它提供了鏈接數據。一種方法是將這種結構的指針放在矩陣中(如int,需要轉換),另一種方法是創建一個鏈接向量,並將每個鏈接項目的索引放入矩陣中。如果有標準方式,請幫助我。謝謝圖形實現,使用鄰接矩陣,鏈接自定義數據
-1
A
回答
0
據我所知,你需要有每個邊緣的自定義數據,對不對?我使用矢量和地圖來做到這一點。
struct data_t {
// any data you want to store for an edge
int a,b,c;
string name;
};
std::vector< std::map<int, data_t> > adj;
這樣,檢查邊緣是否存在更快。否則,您可以使用std::vector<data_t>
0
您還沒有描述「自定義數據」和「鏈接」是什麼。我會假設他們是班級。如果某個東西(這裏是「鏈接」)應該同時攜帶多種類型的數據,您應該創建一個類。當然,你可以用C++製作一個對象矩陣,不需要投射到int
。
如果你的「自定義數據」能活的「鏈接」做每一個環節都有自己的「自定義數據」的全部時間,最簡單的方法是,將數據添加到類鏈接。
class Link { customData_t data; // other useful attributes (and methods) };
您可以創建你的「自定義數據」的
std::vector
。它將管理項目的創建和刪除。訪問隨機元素的最快方法是知道它在內存中的位置 - 一個指針。我認爲沒有必要對int進行任何投射。std::vector<customData_t> CustomData; class Link { customData_t* data; // other useful attributes (and methods) };
灌裝
data
:Link l; customData_t temp; CustomData.push_back(temp); l.data = &(CustomData.back());
(或者你可以在C++ 11使用
vector::emplace_back()
)訪問很簡單:
*l.data
這種方式是更好的,如果你想在多個「鏈接」上共享相同的數據,或者在「鏈接」期間應該添加/刪除它們。
相關問題
- 1. 鄰接矩陣圖實現
- 2. 鄰接矩陣實現
- 3. 圖的鄰接矩陣實現
- 4. 發現鄰接矩陣
- 5. 鄰接矩陣
- 6. 使用鄰接列表和鄰接矩陣的圖的大小?
- 7. 社交網絡圖是如何實現的?鄰接列表或鄰接矩陣
- 8. 鄰接矩陣 - >定向圖 - > DFS
- 9. D3.js:來自鄰接矩陣的強制導向圖形
- 10. 鄰接矩陣VS鄰接表排序
- 11. Python中的鏈接矩陣實現?
- 12. 的R - 構建鄰接矩陣基於其它鄰接矩陣
- 13. 得到了使用鄰接矩陣
- 14. 如何使用鄰接矩陣
- 15. 靜態分配鄰接矩陣圖形用C
- 16. 鄰接矩陣vs有向加權圖的鄰接列表
- 17. 索引鄰接矩陣
- 18. c#鄰接矩陣蠍子
- 19. 從JUNG圖創建鄰接矩陣
- 20. 圖鄰接矩陣分段故障
- 21. 漸變圖像的鄰接矩陣
- 22. Neo4j中圖的鄰接矩陣
- 23. java中的多維數組試圖實現一個鄰接矩陣
- 24. SharePoint - 自定義數據視圖 - 鏈接呈現問題
- 25. 非數字元組的鄰接矩陣
- 26. 遍歷在鄰接矩陣中表示的圖形
- 27. 如何將鄰接矩陣轉化爲圖形ruby?
- 28. 如何將鄰接矩陣轉換爲鏈接列表
- 29. 使用Java在自定義鏈接列表中實現方法
- 30. k陣列樹生成鄰接矩陣