9737
@ Подписаться
Сотни бизнес-методик. Тысячи кейсов. Обновления.

сегодня 13876 Подписчиков


Обсуждения-аналоги

Скрыть / Показать Сортировать по дате
2010-01-22 15:07:59
Сычев С.В., Лебедев К.А. » Всем

12. "ПОП И БРЕЙК"

А теперь соединим функции NeedPop и BreakNow:


Как видно код функций NeedPop и BreakNow идентичен. И мы хотели, чтобы он был один. Отличие состоит лишь в том, что, в зависимости от описанных выше обстоятельств, мы берем разные элементы из таблицы приоритетов и используем разные операторы сравнения (больше ">" и меньше или равно "<=").


В идеале, когда на входе один параметр, код сам выполняет функцию BreakNow, а когда другой, то - функцию NeedPop. Для этого вместо конкретного параметра в строке возврата напишем формулу.


bool Pop_N_Break(const int x const TToken & rToken1, const TToken & rToken2)
{
    assert(rToken1.GetType() < eTokenTypeCount);
    assert(rToken2.GetType() < eTokenTypeCount);

    return g_iPriorities[rToken1.GetType()][x] >
g_iPriorities[rToken2.GetType()][x + 1];
}


Далее...

Уважаемые Коллеги!

Если Вам нравится наш Форум, Вы можете поддержать его, отправив любую сумму (тогда выберите опцию "Спасибо за Форум").

Вы также можете поддержать конкретное обсуждение и получить гарантированный ответ от наших специалистов (тогда выберите опцию "Прошу эксперта ответить в этой теме").
Задайте Ваш вопрос здесь.

Большое Спасибо!


Яндекс.Метрика