$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [Boost-users] newbie - graph library - vertex properties
From: Tobias Columbus (t.columbus_at_[hidden])
Date: 2009-12-15 06:45:42
Hi suresh,
Actually in the example you gave, there is no vertex in Map.
Therefore vertices( map ).first is an iterator pointing to the end of 
vertices( map ) and accessing this element results in a segmentation 
violation.
You first need to add some vertices by 
Map::vertex_descriptor v = add_vertex( map );
Then v is a vertex of your graph and you may assign properties to it:
map[v].name = "Troy";
Regards
Tobias
On Tuesday 15 December 2009 08:36:46 am List User wrote:
> Hi,
> 
> In order to understand bundled properties better, I tried to compile 
the example given in the link below. the code is pasted here: it gives 
a segmentation violation...
> 
> using namespace std;
> using namespace boost;
> 
> struct City
> {
>   string name;
>   int population;
>   vector<int> zipcodes;
> };
> 
> struct Highway
> {
>   string name;
>   double miles;
>   int speed_limit;
>   int lanes;
>   bool divided;
> };
>       
> typedef boost::adjacency_list< boost::listS, boost::vecS, 
boost::bidirectionalS,City, Highway> Map;
> 
> int main(){
>       
> Map map; // load the map
> Map::vertex_descriptor v = *vertices(map).first;
> map[v].name = "Troy";
> map[v].population = 49170;
> map[v].zipcodes.push_back(12180);
> Map::edge_descriptor e = *out_edges(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;
> }
> 
> How do I add memory for vertices in the above example?
> 
> suresh
> 
> 
> 
> 
> That example uses bundled properties 
(http://www.boost.org/doc/libs/1_41_0/libs/graph/doc/bundles.html) 
which remove the need for the operations you named.
> 
> >  3. In the kevin-bacon2.cpp approach for adding new properties to 
the graph, the vertex_properties are read as
> >     adjacency_list[vertex_descriptior]. How will have a read only 
access in such a case? When I use this in a function which is
> >     defined as const in c++, the compiler cribs :)
> 
> A function defined as const, or taking the graph as const?  What error 
do you get?
> 
> -- Jeremiah Willcock
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://listarchives.boost.org/mailman/listinfo.cgi/boost-users
> 
> 
> 
>       
-- __________________________ Tobias Columbus t.columbus_at_[hidden]