Скажем, я нашел узел, который соответствует моим критериям, и мне нужно остановить поиск.
Решение состоит в том, чтобы сгенерировать исключение вашего известного типа - затем перехватить его на вызывающей стороне. Из FAQ :
Как выполнить ранний выход из алгоритма, такого как BFS? Создайте посетителя, который выдает исключение, когда вы хотите отключить поиск, затем поместите ваш вызов в breadth_first_search внутри соответствующего блока try / catch. Многим программистам это кажется неправильным использованием исключений, однако, было принято решение, что исключения должны иметь предпочтительный способ досрочного выхода. Смотрите дополнительные обсуждения электронной почты для более подробной информации.
Как выполнить ранний выход из алгоритма, такого как BFS?
Создайте посетителя, который выдает исключение, когда вы хотите отключить поиск, затем поместите ваш вызов в breadth_first_search внутри соответствующего блока try / catch. Многим программистам это кажется неправильным использованием исключений, однако, было принято решение, что исключения должны иметь предпочтительный способ досрочного выхода. Смотрите дополнительные обсуждения электронной почты для более подробной информации.