boost.graph库中邻接表adjacency_list模板参数中的Edgelist, VertexList的选择问题

docici 发布于 2014/02/27 21:09
阅读 984
收藏 0

开源之夏第三届火热来袭,高校学生参与赢万元奖金!>>>

//boost.graph库邻接表adjacency_list类模板声明如下(摘自boost/graph/adjacency_list.hpp boost版本boost_1_53_0)
template <class OutEdgeListS = vecS, // a Sequence or an AssociativeContainer
class VertexListS = vecS, // a Sequence or a RandomAccessContainer
class DirectedS = directedS,
class VertexProperty = no_property,
class EdgeProperty = no_property,
class GraphProperty = no_property,
class EdgeListS = listS>
class adjacency_list;

//vc9.0下VertexList(即adjacency_list的第二个模板参数VertexListS)不能为listS(即std::list), 否则编译报错:
//error C2664: “boost::add_edge”: 不能将参数 2 从“int”转换为“void *”
//而第一个参数(即OutEdgeListS)没这个问题, 不知什么原因
//有哪位大神遇到类似问题求指点!
using namespace boost;
typedef adjacency_list<listS, vecS, directedS, no_property, property<edge_weight_t, int> > graph_t;
graph_t g;
add_edge(0, 1, 1, g);

boost.graph参考 http://www.ibm.com/developerworks/cn/aix/library/au-aix-boost-graph/index.html?ca=drs



加载中
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部
返回顶部
顶部