Your edges are stored in an std::vector. If you have N vertices, then all vertices are numbered from 0 to N. If you delete one, then your vertices will be renumbered from o to N-1. Therefor, your descriptor will be invalidated.
However, there might be a work arround :
– iterate from N down to 0
– test your node and delete it if necessary
This supposes (and I'm not sure, but rather confident) that it will only renumber the vertices after the one you've just deleted.
If you do this manipulation a lot, it might be rather slow depending on your graph's size.
If that approach doesn't work, you'll have to build a new graph from the old one (by pre-computing how many vertices and edges you will have, this might actually be reasonnably fast).
So, sorry, no real answer, but I hope you'll manage to get something out of it.