Dire che ho trovato il nodo che soddisfa i miei criteri e ho bisogno di interrompere la ricerca.Come si interrompe la ricerca in ampiezza utilizzando Boost Graph Library quando si utilizza un visitatore personalizzato?
7
A
risposta
7
La soluzione consiste nel generare un'eccezione del tipo noto, quindi rilevarla sul lato chiamante. Da FAQ:
Come eseguire un'uscita anticipata da un algoritmo come BFS?
Creare un visitatore che genera un'eccezione quando si desidera interrompere la ricerca, quindi effettuare la chiamata a breadth_first_search all'interno di un blocco try/catch appropriato. Ciò colpisce molti programmatori come un uso improprio delle eccezioni, tuttavia, molto è stato preso in considerazione la decisione di fare in modo che le eccezioni abbiano il modo migliore per uscire presto. Guarda le discussioni via e-mail per maggiori dettagli.
Problemi correlati
- 1. Visualizza grafico utilizzando Boost Graph Library
- 2. Errori del linker quando si utilizza la serializzazione boost
- 3. Come si impedisce SIGPIPE quando si utilizza boost :: asio?
- 4. Il goniometro si interrompe in attesa di sincronizzazione con la pagina quando si utilizza la risorsa $
- 5. Python ricerca in ampiezza ottimizzazione
- 6. Albero binario Ricerca in ampiezza
- 7. Confronto di 2 grafici creati da Boost Graph Library
- 8. Interrompe gli elementi di spostarsi quando si utilizza StaggeredGridLayoutManager
- 9. Come si utilizza un costruttore personalizzato in un WinForm?
- 10. Altri thread si interrompe quando un thread raggiunge la destinazione
- 11. Come rilevare quando un'applicazione si interrompe?
- 12. Come scrivere codice personalizzato (logica) quando si utilizza firebase
- 13. Segmentation fault quando si utilizza boost :: :: NumPy ndarray
- 14. Python Graph Library
- 15. Come si ottiene la data quando si utilizza MSSQL GetDate()?
- 16. Come ottenere refreshToken quando si utilizza GoogleAuthUtil
- 17. ricerca in ampiezza ramificazione fattore
- 18. modello visitatore per boost :: any
- 19. La presa non si interrompe quando la connettività cambia
- 20. Come ridurre l'elemento genitore quando si interrompe la linea?
- 21. Quando si utilizza CFRelease?
- 22. Allineare il testo li che si avvolge quando si utilizza un punto elenco personalizzato
- 23. quando si utilizza knitr
- 24. Come si implementa un setter privato quando si utilizza un'interfaccia?
- 25. Elenco dei valori in un heap binario nell'ordine ordinato utilizzando la ricerca in ampiezza?
- 26. Quando si utilizza boost :: program_options, come si imposta il nome dell'argomento?
- 27. NoClassDefFoundError quando si utilizza Powermock
- 28. IE8 si interrompe quando si utilizzano due selettori?
- 29. Specificare il nome indice personalizzato quando si utilizza add_reference
- 30. Quando si utilizza ANTLR