Angenommen, ich habe den Knoten gefunden, der meine Kriterien erfüllt, und ich muss die Suche stoppen.Wie kann ich die Breitensuche mit Boost Graph Library bei Verwendung eines benutzerdefinierten Besuchers stoppen?
7
A
Antwort
7
Die Lösung ist, eine Ausnahme von Ihrem bekannten Typ zu werfen - dann fangen Sie es auf der anrufenden Seite. Von der FAQ:
Wie mache ich einen frühen Ausgang von einem Algorithmus wie BFS?
Erstellen Sie einen Besucher, der eine Ausnahme auslöst, wenn Sie die Suche abbrechen möchten, und rufen Sie dann innerhalb eines geeigneten try/catch-Blocks breath_first_search auf. Dies trifft viele Programmierer als einen Missbrauch von Ausnahmen, jedoch wurde viel darüber nachgedacht, dass Ausnahmen den bevorzugten Weg haben, früher zu beenden. Weitere Informationen finden Sie unter Boost-E-Mail-Diskussionen.
Verwandte Themen
- 1. Grafik mit Boost Graph Library anzeigen
- 2. Python Verwendung von Breitensuche auf Social Graph
- 3. Warum ist Boost Graph Library `source()` eine globale Funktion?
- 4. Warum macht die Boost Graph Library beim Entfernen eines Scheitelpunkts alle Iteratoren ungültig?
- 5. Vergleichen von 2 Grafiken erstellt von Boost Graph Library
- 6. Boost Graph Library: Verhindern, dass DFS nicht verbundene Knoten besucht
- 7. Wie kann ich die Schleifenleistung bei Verwendung eines Projektmakros verbessern?
- 8. Kann jemand die Breitensuche erklären?
- 9. Boost Graph Bibliothek und Besucher
- 10. Einheit - Kann OnValidate() bei Verwendung eines benutzerdefinierten Inspektors verwendet werden?
- 11. Wie kann ich die IP des Besuchers sicherstellen?
- 12. Wie kann ich die Facebook-Freunde eines Besuchers erhalten, der meine Anwendung nicht installiert hat?
- 13. Wie zähle ich Schlüsselkollisionen bei der Verwendung von boost :: unordered_map?
- 14. Problem bei der Verwendung von boost :: bind & boost :: function
- 15. C++ Boost Prim-Algorithmus mit benutzerdefinierten Gewichten?
- 16. External Library Boost Version Probleme
- 17. Breitensuche Warteschlange
- 18. Verwenden Sie eine Graph Library/Node Network Library oder schreiben Sie mein eigenes?
- 19. Problem in Breitensuche
- 20. Breitensuche mit Set statt Warteschlange
- 21. Die Boost Statechart Library - wie man zeitaufwändige Übergänge implementiert
- 22. So stoppen Sie alle asynchronen Senken bei Verwendung von Boost.Log
- 23. Wie kann ich die Alpha-Premultiplikation mit canvas imageData stoppen?
- 24. Wie kann ich PythonShell stoppen?
- 25. Kann diese Breitensuche schneller gemacht werden?
- 26. Runtime Fehlermeldung bei Verwendung von boost :: Welle
- 27. Warum verliere ich Typinformationen bei Verwendung von boost :: copy_exception?
- 28. Verwenden von Boost Graph Bibliothek: property_map in boost :: mutable_queue
- 29. Wie schreibe ich Code für Breitensuche in C++
- 30. Abmelden funktioniert nicht bei Verwendung von Microsoft Authentication Library (MSAL)