I've just started using the Boost Graph Library (which is proving to be a very nice tool) and I've encountered an issue: When vertex descriptors are passed as parameters, stored in vectors, etc., is it better to use Vertex&, or is Vertex alone okay. I've been assuming that a vertex descriptor is probably a pointer, so I've been using Vertex. But then is occurred to me that my assumption could be all wrong and I should be using Vertex&. Here are the Graph, Vertex, and Edge definitions I've been using:
Surprise... it's an integer :) But only if you use vecS to select your VertexSet. Otherwise, you're right. It's a pointer. Unless it's an edge descriptor, and then it can be a pair of vertex descriptors (which are int's or pointers). Unless you're using the PBGL (parallel version) and then I think they're something different altogether. However it works, it is convention to pass descriptors by value. Andrew Sutton andrew.n.sutton@gmail.com