The context: a function that removes from an arrangement all faces whose data
don't pass a certain predicate. The approach: delete every edge that doesn't
border a passing face. Question: is there a better way to do this? I use the
double-while because of the general risk of deleting from a collection while
iterating over it, but I wonder if there's a more elegant way to obviate
that risk in this specific situation.
I'm not sure if an optimisation counts for adding to elegance.
If you keep track of the iter by a counter you can prevent starting
iteration from ->begin()
it=+counter //(don't increment counter on deletes)