
On Tue, Aug 9, 2011 at 6:59 PM, Geoff Hilton wrote:
On Tue, Aug 9, 2011 at 3:13 PM, Geoff Hilton
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
> 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_proper... > Anil
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.
Thank you, Geoff
On 09/08/2011 7:54 PM, Anil Ramapanicker wrote: Okay, I think I got what you are saying.You may have to content with iteratively adding those vertices.
Possibly, which is why I included the last sentence in my original message.