In der Boost Graph Library Dokumentation es says, dass, wenn Sie einen Eckpunkt aus einem Graphen entfernen (wenn seine Eckpunkte in einem Vektor mindestens gespeichert sind), alle Iteratoren (und Deskriptoren) ungültig sind.Warum macht die Boost Graph Library beim Entfernen eines Scheitelpunkts alle Iteratoren ungültig?
Dies überraschte mich, da es nicht semantisch notwendig scheint, dies zu tun.
Gibt es eine Möglichkeit, adjacency_list
auf eine Weise arbeiten zu lassen, die Iteratoren in einem solchen Fall nicht aggressiv ungültig macht? Kann ich den Vertex nicht einfach "ungültig machen" und ihn zu einem passenden Zeitpunkt sammeln?
Sie wissen, dass das wegen des zugrunde liegenden Vektors passiert? Wenn Sie Elemente aus einem ['std :: vector'] (http://en.cppreference.com/w/cpp/container/vector) hinzufügen oder entfernen, werden möglicherweise alle Iteratoren ungültig gemacht. –
Ehrlich gesagt, liest sich Ihre Frage wie eine unkonstruktive Tirade. Ich kann es für Sie bearbeiten, aber vielleicht möchten Sie dies tun. – sehe
@sehe: Besser? Wenn nicht, können Sie es bearbeiten. – einpoklum