2012-05-10 71 views
1

我目前正在使用Boost Graph Library。我需要獨特的邊緣和頂點。不幸的是,增強版本不提供此功能。所以在插入邊或頂點之前,我必須每次檢查手冊。如何用Boost Graph Library創建一個named_graph?

現在我發現了這個:http://www.boost.org/doc/libs/1_49_0/boost/graph/named_graph.hpp 我想知道這是否會幫助我?由於文檔中沒有提及named_graph,所以我不知道如何使用它。也許周圍有人可以給我一些例子或補充?這會幫助我很多。

在此先感謝。

回答

3

Boost圖庫是非常靈活的,並允許您選擇適合您的頂點和邊的內部表示。如果你選擇一個容器,如std :: set,那麼你可以直接強制執行唯一的頂點和邊。詳細信息在這裏:Using Adjacency List

named_graph類型允許您通過可以自己選擇的屬性(例如表示名稱的「字符串」)爲您的頂點編制索引。它有效地將一個標準的adjacency_list包裝在映射中,該映射的鍵是named屬性,其值是節點。有一個很好的例子,說明如何在助推源named_vertices_test.cpp中使用它。

不知道你想要做什麼,但你可以使用一個std ::地圖/的std ::設爲自己的一些獨特的屬性節點的映射的adjacency_list。如果你只需要確保圖形具有獨特的節點/邊緣,那麼這種方法簡單明瞭,通常是最好的方法。

你應該考慮更改備份容器標準:: SET-例如許多算法的性能將改變的後果。沒有簡單的答案,哪個是最好的容器使用。

相關問題