|
Boost Users : |
From: Christian Sturz (linuxkaffee_at_[hidden])
Date: 2008-02-15 16:18:16
> Do you have to use the property map method?
>
> I've converted over to bundled properties. Much simpler and intuitive.
> http://www.boost.org/libs/graph/doc/bundles.html
Thank you very much. This was a very good hint and works
perfect for me. Now I have another problem. Let's say I
want to add an edge between two vertices which are just specified
by their bundle property (in my case by two pointer to ClassA).
How do I find the corresponding vertex descriptors?
My current solution looks like:
vertex_descriptor_t MyGraph::getVertex( ClassA *a, bool &found )
{
typedef pair< vertex_iterator_t, vertex_iterator_t > vertex_range;
for( vertex_range i = vertices( myGraph ); i.first != i.second;
++i.first ) {
if( myGraph[ *i.first ].pointToA == a ) {
found = true;
return *i.first;
}
}
found = false;
return 0;
}
[The vertex property is called "pointToA"]. I find this solution
not very elegant because
1) I have to iterate over all vertices and check their properties (pointToA)
2) I don't know how to indicate if a vertex could be not found. In my
current version I help out with a bool value passed as parameter.
Are there any better solutions for searching of vertices based on
their properties?
Regards,
Christian
-- Psst! Geheimtipp: Online Games kostenlos spielen bei den GMX Free Games! http://games.entertainment.web.de/de/entertainment/games/free
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net