我正在尝试 boost::graph 头库,但我仍然无法向我的图表添加垂直。
这是我使用 add_vertex 函数的方法:
void GraphManager::addToGraph(VertexProperties node){
//no error, but i do not need it
vertex_t v = boost::add_vertex(graph);
//compilation error
vertex_t v = boost::add_vertex(node, graph);
/*...*/
}
我的定义在这里:
#ifndef GRAPH_DEFINITION_H
#define GRAPH_DEFINITION_H
#include <boost/graph/adjacency_list.hpp>
#include "matchedword.h"
typedef MatchedWord* VertexProperties;
struct EdgeProperties
{
int distance;
EdgeProperties() : distance(0) {}
EdgeProperties(int d) : distance(d) {}
};
struct GraphProperties {
};
typedef boost::adjacency_list<
boost::vecS, boost::vecS, boost::undirectedS,
boost::property<VertexProperties, boost::vertex_bundle_t>,
boost::property<EdgeProperties, boost::edge_bundle_t>,
boost::property<GraphProperties, boost::graph_bundle_t>
> Graph;
typedef boost::graph_traits<Graph>::vertex_descriptor vertex_t;
typedef boost::graph_traits<Graph>::edge_descriptor edge_t;
#endif // GRAPH_DEFINITION_H
任何想法 ?谢谢。
错误:没有匹配函数调用'add_vertex(MatchedWord*&, Graph&)' 候选者是:[...] 模板类型名 Config::vertex_descriptor boost::add_vertex(const typename Config::vertex_property_type&, boost::adj_list_impl&)
注意:模板参数扣除/替换失败:
注意:'Graph {aka boost::adjacency_list, boost::property, boost::property >}'不是从 'boost::adj_list_impl' 派生的
我不明白这个错误输出的含义。