使用升壓用一個簡單的圖形項目中,我定義了兩個類型的adjacency_list的,一個有向邊和其他與無向那些像這樣的的adjacency_list:使用泛型類型
typedef adjacency_list < vecS, vertex_distributed_storage, directedS, Node > directedAdjacencyList;
typedef adjacency_list < vecS, vertex_distributed_storage, undirectedS, Node > undirectedAdjacencyList;
*節點和vertex_distributed_storage這個例子中的類型可以被忽略。
直到這裏一切都沒問題,但是當我嘗試定義接收這些列表中的一個的函數時,我的問題就出現了,因爲根據圖類型我可以有一個定向或非定向的函數,所以我需要指定一個泛型類型我的方法:
void loadGraph(directedAdjacencyList &graph);
void loadGraph(undirectedAdjacencyList &graph);
儘管有功能重複做同樣的東西:S
我也注意到,結構undirectedS
和directedS
只在裏面一個成員的布爾不同。
所以我的選項可以爲我的函數聲明一個泛型類型,所以我可以提供定向和無向adjacency_list的,修改之前提到的結構內的bool或任何其他工作原理。
感謝您的閱讀和抱歉,我的英語不好。
非常感謝您的回答,我會盡快檢查我可以^^ – Aballano 2011-05-04 07:17:22
@Shyish:請注意,您可以對答案進行投票,並且可以將答案標記爲已接受。 :-) – 2011-05-04 09:01:35
謝謝!它工作完美=)(現在我有類似的麻煩'typedef property_map ::類型vertexNameMap;'但我會嘗試找出它之前發佈= P) –
Aballano
2011-05-06 19:40:23