В чем разница между функтором и предикатом? С++
За исключением того, что предикат возвращает тип bool. Ранее считал, что это собственно аналогичные вещи, но в определении нашел, что предикат это подмножество функторов... о каком именно множестве идет речь я так и не понял...?
У тебя в вопросе написано одно и то же разными словами. Тебе это непонятно, потому что не изучал математику. Но я не совсем согласен.
Предикат - это что-то типа функции, возвращающее bool. В С++ это может быть функция или функтор (или лямбда, что то же самое).
Функтор (функциональный объект) - это объект, который можно вызывать как функцию.
Прочитал в Википеди, что предикат обязательно должен иметь хотя бы одни параметр.
В программировании предикат - это определённая функция, с помощью которой некие элементы являются либо "истинными", либо "ложными".
Предикат в программировании — выражение, использующее одну или более величину с результатом булева типа.
>предикат это подмножество функторов
Не видел такого определения.
Функтор - экземпляр класса или структуры, перегруженной оператором.
Предикатом может быть функция, функтор, анонимный метод.
>В чем разница между функтором и предикатом?
Предикат это ячейка куда вставлять, а функтор это то, что помещается в эту ячейку.
функтор "движущиеся тр. ср-во".
на входе предикат "2-колеса" -- на выходе "велосипед"
-//- "4 колеса" -- "автомобиль"
- "2 крыла" -- "голубь"
ну примитивно, но как-то так получается
функтор это как функция а предикат просто возвращает правда или ложь так что предикат это функтор но не наоборот