Boost logo

Boost Users :

Subject: Re: [Boost-users] [BGL]Why the output of algorithms are vertex sequence(PredecessorMap)? How about parallel edges??
From: Andrew Sutton (andrew.n.sutton_at_[hidden])
Date: 2009-05-08 12:26:06


>
> "Remove" also invalidates vertex descriptors!
>>
>>
>> For VertexList == vecS, yes. My advice regarding this would be: If you're
>> using vecS for vectors, don't remove vertices. If you have to remove
>> vertices, use listS and never call num_vertices,
>>
>> For anything other than vecS, remove_vertex shouldn't invalidate
>> descriptors other than the one removed. I hope.
>>
>
> Yes, and as I understand it, ditto iterators.
> So the question still stands!

I can rephrase my previous answer. Descriptors provide improved stability
over iterators. With vectors, iterators are invalidated on insert and erase,
but descriptors are only invalidated on erase/remove. With linked memory
structures (e.g,. lists and trees) neither set of operations (should)
invalidate other iterators or descriptors.

Andrew Sutton
andrew.n.sutton_at_[hidden]



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