Boost logo

Boost Users :

Subject: Re: [Boost-users] newbie - graph library - vertex properties
From: Tobias Columbus (t.columbus_at_[hidden])
Date: 2009-12-15 18:18:51


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_at_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 list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net