Sobes.tech
Junior — Middle

Можете ли да обясните какво се разбира под понятията функтор в програмирането?

sobes.tech AI

Отговор от AI

В програмирането, особено в C++, функторът е обект, който може да бъде извикан като функция. Обикновено това е клас или структура с препроектиран оператор operator(). Това позволява използването на обекти като функции, което е удобно за предаване на поведение към алгоритми.

Пример за функтор на C++:

#include <iostream>

struct MultiplyBy {
    int factor;
    MultiplyBy(int f) : factor(f) {}
    int operator()(int x) const {
        return x * factor;
    }
};

int main() {
    MultiplyBy multiplyBy3(3);
    std::cout << multiplyBy3(10); // Ще изведе 30
    return 0;
}

Функторите често се използват в стандартната библиотека за настройка на поведението на алгоритмите.