Boost logo

Boost Users :

From: Jeremy Siek (jsiek_at_[hidden])
Date: 2004-11-29 08:49:52


Hi Sebastian,

Why do you want to store vertex iterators instead of just vertex
descriptors?

You can use adjacency_list_traits to get the vertex_descriptor type
prior to creating the graph type.

Cheers,
Jeremy

On Nov 29, 2004, at 7:14 AM, Vladimir Prus wrote:

> Hi Sebastian,
>
>> Hi folks!
>>
>> I got a cyclic type-dependency problem. I am trying to let every
>> vertex
>> store a iterator to a list which stores vertex-iterators. This sounds
>> weired, but I need to keep track of very few vertices within my graph
>> which have a particle located at it. Thus I created a list of
>> vertex-iterators who carry my particle positions in the graph. In
>> order
>> to be able to tell quickly if a vertice is taken by a particle I want
>> each vertice to include a pointer to a null element representing the
>> absence of a particle or a pointer into that list. My non-working code
>> looks like:
>>
>> Definition of my graph:
>>
>> struct Spot {
>> // acutally I need the vertex_iterator to be defined already
>> // in order to define particle, but this is not yet defined
>> // so I am using the knowledge that it is going to be represented
>> // by a vector<std::size_t>::iterator (at least I hope so)
>> // this assumption is WRONG!!
>> typedef std::list< std::vector<std::size_t>::iterator >::iterator
>> \\
>
> There are two approaches.
>
> 1. Use pimpl or incomplete type to postpone defining the property type
> until
> you know the iterator type.
>
> struct Spot;
> typedef boost::adjacency_list<boost::vecS, boost::vecS, \\
> boost::undirectedS, Spot* > graph_t;
>
> struct Spot { ............. } ;
>
> 2. Don't bother with iterators, store vector<unsigned> inside the Spot
> class. For VecS/VecS graph, using unsigned to identify vertices should
> be
> OK.
>
> BTW, I'm not sure why your code does not work. It should work, maybe
> after
> changing size_t to int -- don't remember if vertex_descrption is
> signed or
> not.
>
> - Volodya
>
>
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>
_______________________________________________
Jeremy Siek <jsiek_at_[hidden]>
http://www.osl.iu.edu/~jsiek
Ph.D. Student, Indiana University Bloomington
C++ Booster (http://www.boost.org)
_______________________________________________


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