添加自定义顶点升压图
问题描述:
如果我有一个类定义CElement n个元素,一个人如何可以创建具有增强图形这些元素的顶点 - 而连接它们也?
我见过提升图形捆绑道具,但我只是不明白这一个。
If I have n elements defined with class CElement, how can one create vertices of those elements with boost graph - and connect them also? I've seen boost graph bundled props, but I just can't figure this one out.
答
我不明白你想要做什么。你想一些数据关联的顶点?然后用捆绑的属性。
I don't understand what you want to do exactly. Do you want to associate some data to vertices? Then use bundled properties.
//Define a class that has the data you want to associate to every vertex and edge
struct Vertex{ int foo;}
struct Edge{std::string blah;}
//Define the graph using those classes
typedef boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, Vertex, Edge > Graph;
//Some typedefs for simplicity
typedef boost::graph_traits<Graph>::vertex_descriptor vertex_t;
typedef boost::graph_traits<Graph>::edge_descriptor edge_t;
//Instanciate a graph
Graph g;
// Create two vertices in that graph
vertex_t u = boost::add_vertex(g);
vertex_t v = boost::add_vertex(g);
// Create an edge conecting those two vertices
edge_t e; bool b;
boost::tie(e,b) = boost::add_edge(u,v,g);
// Set the properties of a vertex and the edge
g[u].foo = 42;
g[e].blah = "Hello world";
在其他的方法来设置属性,但你有一个例子来引导。
The are other ways to set the properties, but there you a have an example to bootstrap.
我希望我没有误解的问题。
I hope I didn't misunderstand the question.