I did not get you properly, I'm suggesting to replace std::vector with boost::vector_property_map
On Tue, Aug 9, 2011 at 3:13 PM, Geoff Hilton<geoff.hilton@t-optlogic.com <mailto:geoff.hilton@t-optlogic.com>> wrote:
If I know that during the execution of the algorithm the graph size
must be grown by X number of vertices in one go, is there a way this
can be done to avoid multiple allocations such as when using
std::vector's reserve(..) or resize(..) member functions without
subverting the BGL's documented interface? Currently I use a for
loop which iterates over add_vertex(vertex_property, graph). Can a
reserve and/or resize equivalent otherwise please be added somewhere?
Thank you,
Geoff
That's exactly what I'm already doing. I'm asking because true, at first I do invariably have to use add_vertex(..), but later on I know exactly how many vertices by which to grow the graph at a time due to the algorithm I'm implementing and I wish to add them in as few memory allocations as possible (preferably one) to the existing graph. Thus, something like std::vector's resize/reserve or an equivalent would be useful.
> On 09/08/2011 6:12 PM, Anil Ramapanicker wrote:
> I think you are asking about implicit graph where vertices and edges are
> unknown at the begining and they are added during the execution of an
> algorithm. You can do it in two ways
> a) If you are using internal properties then
> add_vertex( vertex_whatever,g) will work
> b) If you are using exterior property map then use vector_property_map
> since the size is unknown
> http://www.boost.org/doc/libs/1_47_0/libs/property_map/doc/vector_property_map.html
> Anil
Thank you,
Geoff
_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users