
On Thu, 17 Mar 2011, Marcus Riemer wrote:
A raw std::vector is not enough to use as a color map. If your graph has a vertex index map (which is probably true), you can make a color map as:
two_bit_color_map
::const_type> color_map(num_vertices(graph), get(vertex_index, graph)); One general question: Wouldn't the const_type be, umm, constant? And therefore the algorithm can't alter the colors? I guess I am wrong, because passing an constant single color map would not make much sense. Or am I overseeing something?
The map you are getting using const_type is the vertex index map, which is
read-only for many graph types simply because it is a function (often the
identity, but don't rely on that). From your error message, it looks like
you are missing the ::const_type when you try to get the vertex index map,
or it is after two_bit_color_map rather than property_map
I believe that is automatically cleared; otherwise, see the code in depth_first_search() that clears the color map (depth_first_visit() will not do that for you). I will take a look, but I would hope that boost would not copy my local color map and reuse it.
It won't copy it (just a shallow copy), and depth_first_visit() won't clear it for you, but I believe a two_bit_color_map constructed with just an element count will be cleared by the constructor. -- Jeremiah Willcock