Функция findo, приведенная далее, исследует базу данных в поисках любого рейса из заданного в переменной from пункта отправления. / / Для заданного from находит любой рейс. Возвращает true, если рейс найден, //и false — в противном случае. bool Search::find(string from, Flightlnfo &f) { for(unsigned i=0; i < flights.size(); i++) { if(flights[i].from == from && !flights[i].skip) { f = flights[i]; flights[iJ.skip = true; // препятствует повторному использованию return true; } } return false; } Пункт отправления передается в переменной from. Если рейс найден, функция find о возвращает true, а объект типа Flightlnfo, связанный с этим рейсом, запоминается в переменной, на которую ссылается второй параметр f. В противном случае функция find о возвращает false. Различие между функциями find о и match о состоит в том, что первая определяет, есть ли рейс между двумя заданными городами, а вторая выясняет, есть ли рейс из заданного города в любой другой. Как и matcho, функпия findo использует поле skip для управления возвратом из тупиков.
|