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