Avatar ·

什么是 C++ 中的 functors 以及它们的作用?

大家好!我开始学习 C++ 时遇到了术语 "functor"。我读了文档,但还没有完全理解。它似乎是一个行为像函数的类对象。但为什么需要这个?我们有普通函数、lambda 表达式、函数指针。 我尝试写了一个简单的例子,但不确定这是否是正确的用法。下面是我写的: ```cpp #include class Adder { public: int operator()(int a, int b) { return a + b; } }; int main() { Adder add; std::cout << add(3, 4) << std::endl; // 输出 7 return 0; } ``` 我明白这是可行的,但这比普通函数 `int add(int a, int b)` 好在哪里?为什么要费劲写一个类?我听说 functors 在 STL 中使用,例如在算法中。但我不清楚它们具体在什么情况下以及如何带来优势。 你们能简单解释一下:什么是 functors,它们相比普通函数和函数指针有哪些优点?