Boost logo

Boost Users :

Subject: Re: [Boost-users] a vector of subgraphs
From: fabricio (fabricio.olivetti_at_[hidden])
Date: 2009-04-08 13:43:16


Hi, thanks for the answers, but using Graph* does not work, it is an
invalid cast from Graph& to Graph*
the Visual C++ gives me a C2440 error (type cast error) when I try to
make
Graph* g1 = g.subgraph();

even doing

Graph* g1 = (Graph*) g.subgraph();

On 8 abr, 14:19, "James C. Sutherland" <James.Sutherl..._at_[hidden]>
wrote:
> Pointers should still work.  See below.  You cannot (currently) hold  
> references in containers.  I think that this is slated to change in  
> the new c++ standard, but don't know much about that...
>
> On Apr 8, 2009, at 8:53 AM, fabricio wrote:
>
> > Ok, but it still won't work for me.
>
> > Let me rephrase my problem:
>
> > I have a certain Graph g and I must create several subgraphs from it.
> > In order to create a subgraph I must declare:
>
> > typedef subgraph<adjacency_list> Graph;
> > Graph g;
>
> > and to create the proper subgraphs from g it must be done:
>
> > Graph& g1 = g.subgraph();
>
> Graph* g1 = g.subgraph();
>
> > where the subgraph method returns a Graph&.
>
> > The problem is that I must have "n" different subgraphs and I must
> > have a way to iterate through them. So ideally I should have:
>
> > vector< Graph& > subg;
>
> vector< Graph* > subg;
>
>
>
>
>
>
>
> > subg.resize(n);
> > for (i=0;i<n;++i )
> >    subg[i] = g.subgraph();
>
> > I guess the use of the reference is necessary so when I insert an edge
> > on one of the graphs it reflects on every subgraph.
>
> > best regards,
> > Fabricio
>
> > On 8 abr, 00:57, "Damian Coventry" <Damian.Coven..._at_[hidden]>
> > wrote:
> >> Agree with James, shared_ptr can help here...
>
> >> typedef subgraph<adjacency_list> Graph;
> >> typedef shared_ptr<Graph> GraphPtr;
> >> typedef vector<GraphPtr> Graphs;
>
> >> Graphs graphs;
> >> graphs.push_back(GraphPtr(new Graph));
>
> >> or perhaps
>
> >> Graphs graphs;
> >> graphs.resize(2);
>
> >> graphs[1].reset(new Graph);
> >> graphs[1]->DoStuff();
>
> >> graphs[0] = GraphPtr(new Graph);
> >> graphs[0]->DoStuff();
>
> >> ~Damian();
>
> >>> -----Original Message-----
> >>> From: boost-users-boun..._at_[hidden] [mailto:boost-users-
> >>> boun..._at_[hidden]] On Behalf Of fabricio
> >>> Sent: Wednesday, 8 April 2009 2:54 p.m.
> >>> To: boost-us..._at_[hidden]
> >>> Subject: Re: [Boost-users] a vector of subgraphs
>
> >>> oh sorry, forgot to mention, after
>
> >>> vector< Graph& > subG;
>
> >>> I should have something like:
>
> >>> subG.resize(2);
> >>> subG(0) = G.subgraph();
>
> >>> and subgraph() returns a Graph&
>
> >>> On 7 abr, 21:04, "James C. Sutherland" <James.Sutherl..._at_[hidden]>
> >>> wrote:
> >>>> On Apr 7, 2009, at 4:59 PM, fabricio wrote:
>
> >>>>> typedef subgraph< adjacency_list > Graph;
>
> >>>>> Graph G;
>
> >>>>> what I want is to create a:
>
> >>>>> vector< Graph& > subG;
>
> >>>>> but the usage of & here is illegal.
>
> >>>> Why not use pointers?
> >>>>         vector<Graph*> subG;
> >>>> or
> >>>>         vector< boost::shared_ptr<Graph> > subG;
> >>>> _______________________________________________
> >>>> Boost-users mailing list
> >>>> Boost-
> >>> us..._at_[hidden]http://lists.boost.org/mailman/listinfo.cgi/boost-
> >>> users
> >>> _______________________________________________
> >>> Boost-users mailing list
> >>> Boost-us..._at_[hidden]
> >>>http://lists.boost.org/mailman/listinfo.cgi/boost-users
>
> >> * Scanned by MailMarshal - Marshal's comprehensive email content  
> >> security solution. Download a free evaluation of MailMarshal  
> >> atwww.marshal.com*
> >> _______________________________________________
> >> Boost-users mailing list
> >> Boost-us..._at_[hidden]http://lists.boost.org/mailman/listinfo.cgi/boost-users
> > _______________________________________________
> > Boost-users mailing list
> > Boost-us..._at_[hidden]
> >http://lists.boost.org/mailman/listinfo.cgi/boost-users
>
> _______________________________________________
> Boost-users mailing list
> Boost-us..._at_[hidden]http://lists.boost.org/mailman/listinfo.cgi/boost-users


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