Шрифт:
Помимо побочных эффектов между
Во-вторых, accumulate непосредственно возвращает вычисленное значение, а
Ниже приведен предыдущий пример, в котором вместо accumulate используется
Лично я предпочитаю обобщать интервальные данные при помощи
Возможно, вас интересует, почему у
Функции, функторы и классы функций
Нравится нам это или нет, но функции и представляющие их объекты (функторы) занимают важное место в STL. Они используются ассоциативными контейнерами для упорядочения элементов, управляют работой алгоритмов типа
Да, функторы и классы функторов встречаются в STL на каждом шагу. Встретятся они и в ваших программах. Умение создавать правильно работающие функторы абсолютно необходимо для эффективного использования STL, поэтому большая часть этой главы посвящена одной теме — как добиться того, чтобы функторы работали именно так, как им положено работать в STL. Впрочем, один совет посвящен другой теме и наверняка пригодится тем, кто задумывался о необходимости включения в программу вызовов
Совет 38. Проектируйте классы функторов для передачи по значению
Ни C, ни C++ не позволяют передавать функции в качестве параметров других функций. Вместо этого разрешается передавать указатели на функции. Например, объявление стандартной библиотечной функции
В совете 46 объясняется, почему вместо функции