Una lambda es una función anónima que puedes definir in situ, sin la necesidad de crear una función separada. Las lambdas son especialmente útiles cuando necesitas pasar una función como argumento a otra función, como std::for_each, std::transform, std::sort, entre otros.
Ejemplo 1: Uso de Lambdas en Algoritmos de la STL:
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> numeros = {5, 2, 8, 1, 9, 3};
// Ordenar el vector utilizando una lambda
std::sort(numeros.begin(), numeros.end(), [](int a, int b) {
return a < b;
});
// Imprimir los números ordenados
for (int num : numeros) {
std::cout << num << " ";
}
return 0;
}
Aquí, [](int a, int b) { return a < b; } es la lambda que define una función anónima que toma dos enteros a y b como argumentos y devuelve un valor booleano basado en la comparación. Esta función se utiliza como criterio de orden en el algoritmo std::sort.
std::sort(numeros.begin(), numeros.end(), [](int a, int b) {
return a < b;
});
Ejemplo 2: Uso de Lambdas en Transformaciones:
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> numeros = {1, 2, 3, 4, 5};
// Duplicar cada número utilizando una lambda
std::transform(numeros.begin(), numeros.end(), numeros.begin(), [](int num) {
return num * 2;
});
// Imprimir los números duplicados
for (int num : numeros) {
std::cout << num << " ";
}
return 0;
}
En este caso, [](int num) { return num * 2; } es la lambda que define una función anónima que toma un entero num como argumento y devuelve el resultado de multiplicar num por 2. Esta función se utiliza para transformar cada elemento en el vector numeros.
std::transform(numeros.begin(), numeros.end(), numeros.begin(), [](int num) {
return num * 2;
});
Ejemplo 3: Uso de Lambdas en Funciones de Orden Superior:
#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
// Función que aplica una función a cada elemento de un vector
void aplicarFuncion(std::vector<int>& datos, std::function<int(int)> funcion) {
for (int& num : datos) {
num = funcion(num);
}
}
int main() {
std::vector<int> numeros = {1, 2, 3, 4, 5};
// Utilizar una lambda para elevar al cuadrado
aplicarFuncion(numeros, [](int num) {
return num * num;
});
// Imprimir los números al cuadrado
for (int num : numeros) {
std::cout << num << " ";
}
return 0;
}
En este ejemplo, [](int num) { return num * num; } es la lambda que define una función anónima que toma un entero num como argumento y devuelve el resultado de elevar num al cuadrado. Esta función se pasa como argumento a la función aplicarFuncion.
aplicarFuncion(numeros, [](int num) {
return num * num;
});
Pueder ir al artículo principal:
Códigos Sencillos hechos en C++

Can you be more specific about the content of your article? After reading it, I still have some doubts. Hope you can help me.
I don’t think the title of your article matches the content lol. Just kidding, mainly because I had some doubts after reading the article.