Библиотека значимых графов - минимальный пример цвета вершин и вывод graphviz

Я новичок в библиотеке графов ускорений, я нахожу это» Часто бывает трудно определить, какие части примеров связаны с конкретным примером, а какие универсальны для использования.

В качестве упражнения я пытаюсь создать простой граф, назначить свойство цвета вершинам, и выведите результат в graphviz, чтобы цвета отображались как атрибуты цвета, которые отображаются. Любая помощь будет оценена по достоинству! Вот что у меня есть до сих пор (более конкретные вопросы по использованию находятся в комментариях здесь):

#include "fstream"
#include "boost/graph/graphviz.hpp"
#include "boost/graph/adjacency_list.hpp"

struct vertex_info { 
    int color; 
};

typedef boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS, vertex_info> Graph;
typedef std::pair<int, int> Edge;

int main(void) {
  Graph g;
  add_edge(0, 1, g);
  add_edge(1, 2, g);

  // replace this with some traversing and assigning of colors to the 3 vertices  ...
  // should I use bundled properties for this?
  // it's unclear how I would get write_graphviz to recognize a bundled property as the color attribute
  g[0].color = 1; 

  std::ofstream outf("min.gv");
  write_graphviz(outf, g); // how can I make write_graphviz output the vertex colors?
}
7
задан sehe 24 April 2011 в 20:05
поделиться