Skip to content

11 Lesson

Konychev Valera edited this page Apr 15, 2019 · 2 revisions

Функторы

  • Функтор - любой объект, к которому можно применить оператор ():

    • функция
    • указатель на функцию
    • объект класса с перегруженным оператором operator()
  • Пример шаблонной функции, которая принимает функторы:

template<typename InputIt, typename UnaryFunction>
UnaryFunction for_each(InputIt first, InputIt last, UnaryFunction f);
  • Типы функторов в STL:
    • генератор - без аргументов.
    • унарный - с одним аргументом.
      • предикат - когда возвращает bool.
    • бинарный - с двумя аргуметами.
      • бинарный предикат - когда возвращает bool.

STL - transform()

template<typename InputIt, typename OutputIt, typename UnaryOperation>
OutputIt transform(InputIt first1, InputIt last1, OutputIt d_first,
                    UnaryOperation unary_op);

STL - <functional>

Лямбда функции

[ auto-variables ]( parameters ) { function-body }

Clone this wiki locally