使用升压用一个简单的图形项目中,我定义了两个类型的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