Да, это ожидаемое поведение. Чтобы напечатать этикетки, добавьте автора свойства:
auto vlw = boost::make_label_writer(boost::get(boost::vertex_name, g));
boost::write_graphviz(f, g, vlw);
Посмотрите его Live on Coliru
Или, как я предпочитаю, используйте write_graphviz_dp
для использования dynamic_properties
:
boost::dynamic_properties dp;
dp.property("node_id", boost::get(boost::vertex_index, g));
dp.property("label", boost::get(boost::vertex_name, g));
boost::write_graphviz_dp(f, g, dp);
Посмотрите это Живите в Coliru
Может показаться, что это больше работы, но это легко и гибко со многими свойствами вершин / ребер. Вы можете найти мои ответы , чтобы найти хорошие примеры этого.
Оба вышеприведенных решения печатают
digraph G {
0[label=One];
1[label=Two];
0->1 ;
}
БОНУС
Вам не нужно add_named_vertex
функция. Вы можете инициализировать свойство напрямую с помощью boost::add_vertex
:
const auto va = add_vertex({"One"}, g);
const auto vb = add_vertex({"Two"}, g);
add_edge(va, vb, g);