什么是 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,它们相比普通函数和函数指针有哪些优点?