Запуск Boost.Graph в примере 4 для QT выдает текущую ошибку:
нет соответствия для вызова графика '(boost :: dynamic_properties) (std :: bacic_ostream> &, unsigned int)'.hpp
Ошибка возникает в следующей строке graphvic.hpp:
for(boost::tie(i,end) = vertices(g); i != end; ++i) {
out << escape_dot_string(get(vertex_id, *i));
vpw(out, *i); //print vertex attributes
out << ";" << std::endl;
}
Я не могу найти причину ошибки.Ниже приведен код примера 4 для Boost.Graph.Пожалуйста, помогите мне.
typedef boost::adjacency_list
<
boost::vecS,
boost::vecS,
boost::undirectedS,
boost::property<boost::vertex_name_t,std::string>,
boost::property<boost::edge_weight_t,double>,
boost::property<boost::graph_name_t,std::string>
> Graph;
Graph g;
std::vector<std::string> names;
names.push_back("Mr_A");
names.push_back("Mrs_B");
names.push_back("Dr_C");
names.push_back("Prof_D");
const Graph::vertex_descriptor v0 = boost::add_vertex(names[0],g);
const Graph::vertex_descriptor v1 = boost::add_vertex(names[1],g);
const Graph::vertex_descriptor v2 = boost::add_vertex(names[2],g);
const Graph::vertex_descriptor v3 = boost::add_vertex(names[3],g);
std::vector<double> frequencies;
frequencies.push_back(0.9);
frequencies.push_back(0.5);
frequencies.push_back(0.6);
frequencies.push_back(0.1);
boost::add_edge(v0,v1,frequencies[0],g);
boost::add_edge(v1,v2,frequencies[1],g);
boost::add_edge(v2,v3,frequencies[2],g);
boost::add_edge(v0,v3,frequencies[3],g);
//Writing graph to file
{
std::ofstream f("test.dot");
boost::dynamic_properties p;
p.property("label", boost::get(boost::edge_weight, g));
p.property("weight", boost::get(boost::edge_weight, g));
p.property("node_id", boost::get(boost::vertex_name, g));
boost::write_graphviz(f,g,p);
f.close();
}
Спасибо, Пракаш