Я никогда раньше не использовал функторы с ++, поэтому просто пытаюсь понять, как они работают.
например. предположим, у нас есть этот класс функторов
class MultiplyBy {
private:
int factor;
public:
MultiplyBy(int x) : factor(x) { }
int operator () (int other) const {
return factor * other;
}
};
Использовать его так, как мне ясно:
MultiplyBy mult_3(3);
int x = mult_3(100);
Очевидно, конструктор MultiplyBy вызывается с аргументом 3.
Но как в следующем случае вызывается конструктор со значением в массиве?
int array[5] = {1, 2, 3, 4, 5};
std::transform(array, array + 5, array, MultiplyBy(3));