
Hi Tobias
I managed to figure out how to use the property maps. When we can get vertex property as graph[vertex_descriptor] why property maps? again, when the above method is available, what do we gain by vertex_bundle property tag etc?
Thanks suresh
On Wed, Dec 16, 2009 at 5:00 PM, Suresh Kumar
wrote: Hi,
For example, I wrote the following: typedef property_map
But I am unable to figure out how to get the actual vertex property from the IndexMap index.
Also, how do we use, get(vertex_bundle, map)?
Thanks suresh
On Wed, Dec 16, 2009 at 4:09 PM, Suresh Kumar
wrote: Hi Tobias,
Can you just show, how to access the vertex properties using the get() function?. I know that map[vertex_descriptior] gives me the vertex_properties of that particular vertex. But I am unable to
Hi Suresh, One advantage I can think of, is the following: Suppose you're developing in a team and after some while you realize that your graph needs property XY. Then you don't have to mess around in some header file to adapt your team's graph classes, but you only have to adapt your code locally, initialize a property_map in your algorithm, use it and destroy it afterwards. Another scenario would be that a graph is passed through some kind of pipeline and each pipeline step only needs to use local property_maps that saves memory, as the graph doesn't need to have internal all properties. Finally I think the reason that property_maps are used in boost, is that they make generic programming much easier, as the library programmer doesn't fix the implementation of some property but the library user may choose the adequate property_map for his/her code. Regards Tobias On Thursday 17 December 2009 06:54:17 am Suresh Kumar wrote: figure
out how to use the get function for single vertex property as well as for the vertex_bundle,
Thanks suresh
On Tue, Dec 15, 2009 at 3:18 PM, Tobias Columbus
wrote: Hi again,
Try the following code, which just compiles fine with g++ 4.4.1 on my system:
struct City{...}; struct Highway{...};
typedef ... Map;
int main(){ Map map; Map::vertex_descriptor v = add_vertex( map ); Map::vertex_descriptor u = add_vertex( map ); map[v].name = "Troy"; map[v].population = 49170; map[v].zipcodes.push_back(12180); Map::edge_descriptor e = add_edge( u, v, map ).first; map[e].name = "I-87"; map[e].miles = 10; map[e].speed_limit = 65; map[e].lanes = 4; map[e].divided = true; return 0; }
Generally I would suggest reading
http://www.boost.org/doc/libs/1_41_0/libs/graph/doc/quick_tour.html
which gives a quick overview of how to handle graphs in BGL.
If you work through this tutorial, vertex and edge properties will also get explained.
Regards Tobias
On Tuesday 15 December 2009 05:00:01 pm List User wrote:
Hi Tobias Columbus,
In fact I had tried that also. But then I got a funny message while executing like this: Ubuntu 9.04, g++ 4.3.3 //Map::vertex_descriptor v = *vertices(map).first; Map::vertex_descriptor v = add_vertex(map);
suresh@suresh-laptop:~/C++$ ./a.out *** glibc detected *** ./a.out: free(): invalid pointer: 0x09f9c064
======= Backtrace: ========= /lib/tls/i686/cmov/libc.so.6[0xb7e6a604] /lib/tls/i686/cmov/libc.so.6(cfree+0x96)[0xb7e6c5b6] /usr/lib/libstdc++.so.6(_ZdlPv+0x21)[0xb804d231] ../a.out[0x8049e7d] ../a.out[0x8049ea7] .. .. ..
so what to do next?
suresh
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
-- R. Suresh Kumar PhD Student, Vislab #216, Engineering II Bldg University of California, Riverside, CA 92521
-- R. Suresh Kumar PhD Student, Vislab #216, Engineering II Bldg University of California, Riverside, CA 92521
-- R. Suresh Kumar PhD Student, Vislab #216, Engineering II Bldg University of California, Riverside, CA 92521 _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
-- __________________________ Tobias Columbus t.columbus@gmx.de