¿Qué son los funtores en C++ y por qué se necesitan?
¡Hola! Estoy estudiando C++ y me topé con el término "functor" (functor). Leí que es algo así como un objeto que se comporta como una función. Pero no entiendo bien por qué se necesita, si existen funciones normales y punteros a funciones.
Por ejemplo, sé que se puede pasar una función a `std::sort` como comparador:
```cpp
bool compare(int a, int b) {
return a < b;
}
std::sort(vec.begin(), vec.end(), compare);
```
¿Pero por qué usar un objeto con `operator()` sobrecargado? ¿Cuál es la ventaja? He oído que los funtores pueden almacenar estado, pero no entiendo cómo aplicarlo en la práctica. ¿Puedes explicarlo con un ejemplo simple donde un functor sea realmente más conveniente que una función normal?
Y otra pregunta: ¿los funtores son lo mismo que las lambda expressions? ¿O son cosas diferentes? Agradecería una explicación detallada con ejemplos de código.
<<>>
¿Qué es un functor?
Un functor (u objeto funcional) es una clase o estructura en la que se sobrecarga el operador de llamada a función operator().
No answers yet.
Inicia sesión para dejar una respuesta
Blogs
Code review en Swift: qué revisar y cómo dar retroalimentación
Funciones Serverless en Swift: AWS Lambda de la A a la Z
Por qué Google inserta while(1); en JSON y cómo no caer en la trampa
Pruebas de mutación en C#: rompemos el código para mejorarlo