Maison  >  Article  >  développement back-end  >  Comment formuler la liste des paramètres de l’expression lambda C++ ?

Comment formuler la liste des paramètres de l’expression lambda C++ ?

WBOY
WBOYoriginal
2024-04-18 09:00:02491parcourir

La syntaxe de la liste de paramètres de l'expression Lambda est : [capture-list](parameters) -> return-type { body }, où : capture-list capture les variables externes. paramètres est la liste des paramètres. return-type est le type de retour. le corps est le corps fonctionnel.

C++ lambda 表达式的参数列表如何制定?

Formulation de liste de paramètres de l'expression Lambda C++

L'expression Lambda est une fonction en ligne concise et puissante en C++ qui peut capturer des variables externes et les stocker sur la pile. La syntaxe de la liste de paramètres de l'expression lambda est la suivante :

[capture-list](parameters) -> return-type { body }

capture-list spécifie les variables externes à capturer, qui peuvent avoir les valeurs suivantes :

  • [=] : Capturer tout variables externes
  • [=]: 捕获所有外部变量
  • [&]: 捕获所有外部变量,并作为引用传递
  • [parameter1, parameter2, ...]: 捕获指定的外部变量
  • [parameter1, parameter2, ..., &parameter3, &parameter4, ...]: 既捕获指定的变量,又以引用形式捕获其他变量

parameters 指定 lambda 表达式的参数列表,语法与普通函数的参数列表相同。

return-type 指定 lambda 表达式的返回类型,可以是任何有效的 C++ 数据类型。

body 是 lambda 表达式的函数体,包含要执行的代码。

实战案例

考虑一个需要对整数列表进行排序的函数。我们可以使用 lambda 表达式定义一个比较函数:

auto compare = [](int a, int b) { return a > b; };

在这个例子中,lambda 表达式捕获了外部变量 ab

我们也可以使用 lambda 表达式来创建匿名函数并立即执行:

auto print_name = [](string name) { cout << "Hello, " << name << endl; };
print_name("John Doe");

这个 lambda 表达式捕获了外部变量 name,并将其作为参数传递给了 cout[&] : Capturez toutes les variables externes et transmettez-les comme références

[paramètre1, paramètre2, ...] : Capturez les variables externes spécifiées

[paramètre1, paramètre2, ..., &paramètre3, &paramètre4, ...] : capture à la fois la variable spécifiée et d'autres variables sous forme de référence

🎜parameters🎜 Spécifie la liste de paramètres de l'expression lambda. La syntaxe est la même que la liste de paramètres d'une fonction ordinaire. 🎜🎜🎜return-type🎜 Spécifie le type de retour de l'expression lambda, qui peut être n'importe quel type de données C++ valide. 🎜🎜🎜body🎜 est le corps de fonction de l'expression lambda et contient le code à exécuter. 🎜🎜🎜Cas pratique🎜🎜🎜Considérons une fonction qui doit trier une liste d'entiers. Nous pouvons définir une fonction de comparaison à l'aide d'une expression lambda : 🎜rrreee🎜Dans cet exemple, l'expression lambda capture les variables externes a et b. 🎜🎜Nous pouvons également utiliser des expressions lambda pour créer des fonctions anonymes et les exécuter immédiatement : 🎜rrreee🎜Cette expression lambda capture la variable externe name et la passe en paramètre à cout fonction. 🎜🎜Avec des listes de capture et des listes de paramètres personnalisées, les expressions lambda fournissent des outils puissants pour écrire du code concis, flexible et réutilisable en C++. 🎜

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn