Expressions Lambda C++ : un outil puissant pour des scénarios spécifiques
Introduction
Les expressions Lambda sont une fonction anonyme introduite en C++ qui vous permet de créer des objets fonctions courts en ligne. Ils sont parfaits pour gérer des tâches simples qui ne nécessitent pas de déclarations ni de dénomination distincte.
Syntaxe Lambda
Les expressions Lambda adoptent la syntaxe suivante :
[capture-list](parameters) -> return-type { body }
Utiliser
Les expressions Lambda sont particulièrement utiles dans les scénarios suivants :
std::sort
和 std::find
. Cas pratique
1. En tant que fonction de rappel
Le code suivant utilise l'expression lambda pour convertir la chaîne en majuscule :
#include <iostream> #include <string> using namespace std; int main() { string str = "hello"; transform(str.begin(), str.end(), str.begin(), [](char c) { return toupper(c); }); cout << str << endl; // 输出:HELLO return 0; }
2 Comme paramètre d'algorithme STL
Le code suivant utilise lambda. expression Trouvez le premier nombre supérieur à 5 :
#include <iostream> #include <vector> using namespace std; int main() { vector<int> nums = {1, 3, 5, 7, 9}; auto it = find_if(nums.begin(), nums.end(), [](int n) { return n > 5; }); if (it != nums.end()) { cout << "找到了第一个大于 5 的数字:" << *it << endl; // 输出:7 } else { cout << "没有找到大于 5 的数字" << endl; } return 0; }
3. Comme fermeture
Le code suivant montre comment créer une fermeture à l'aide d'expressions lambda :
#include <iostream> using namespace std; int main() { int x = 10; auto f = [x](int y) { return x + y; }; cout << f(5) << endl; // 输出:15 return 0; }
Remarque : Par rapport aux fonctions nommées, les expressions Lambda existent les limitations suivantes :
Lorsque vous utilisez des expressions lambda, pesez soigneusement leurs avantages et leurs limites pour déterminer si elles constituent le meilleur choix pour votre scénario spécifique.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!