隐式图的BGL内部属性

时间:2011-12-23 21:04:59

标签: c++ boost boost-graph

我正试图在隐式图上使用Boost BGL的A *搜索。我已经实现了我自己的图形类型,它模拟了Graph和IncidenceGraph的概念。根据A *的文档,我应该使用astar_search_no_init函数和隐式图。

为了让整个工作正常,我试图实现所有需要概念的虚拟版本。这包括图形,访问者,启发式和顶点类型。我的主要功能看起来像这样

int main()
{
   graph g;
   // The vertex type is a simple wrapper for int.
   vertex start(1);
   vertex goal(10);

   boost::astar_search_no_init(g, start, heuristic(), 
        boost::visitor(visitor(goal)));
}

如果不指定任何命名参数,则实现应该使用一些默认值。显然,这些默认值需要我图表的一些支持。该图如下所示:

struct graph
{
   typedef void adjacency_iterator;
   typedef void in_edge_iterator;
   typedef void vertex_iterator;
   typedef void edge_iterator;
   typedef void vertices_size_type;

   typedef void edge_iterator;
   typedef void edges_size_type;

   typedef vertex vertex_descriptor;
   typedef double edge_descriptor;
   typedef boost::directed_tag directed_category;
   typedef boost::disallow_parallel_edge_tag edge_parallel_category;
   typedef boost::incidence_graph_tag traversal_category;

   typedef std::vector<double>::iterator out_edge_iterator;
   typedef int degree_size_type;
};

编译时,第一个也是最有趣的错误是:

错误C2039:'edge_property_type':不是'graph'的成员

据我所知,我需要为图表添加属性。我相信这些属性应该是内部属性。我的问题是:如何为我自己的隐式图表类型添加内部属性?

0 个答案:

没有答案
相关问题