Maison  >  Article  >  développement back-end  >  Comment définir et utiliser des expressions lambda C++ ?

Comment définir et utiliser des expressions lambda C++ ?

WBOY
WBOYoriginal
2024-04-17 09:51:01554parcourir

L'expression C++ Lambda est une fonction anonyme, utilisée pour définir des fonctions en ligne, en utilisant la syntaxe : [capture list](parameters) -> return_type {function body}. Ils peuvent capturer des variables dans la portée externe, transmettre des paramètres et spécifier des types de retour. Les expressions Lambda sont utilisées lorsque vous devez transmettre une fonction en tant que paramètre ou définir une fonction dans un certain contexte, comme la transmission de paramètres, la capture de variables et le tri de listes.

C++ lambda 表达式如何定义和使用?

Expression Lambda C++ : définition et utilisation

Introduction
L'expression Lambda est une fonction anonyme spéciale en langage C++ qui vous permet de définir des fonctions en ligne de manière concise. Ils sont largement utilisés dans les situations où vous devez transmettre une fonction en tant que paramètre ou définir une fonction dans un certain contexte.

Syntaxe
La syntaxe de l'expression Lambda est la suivante :

[capture list](parameters) -> return_type {
  // 函数体
}

Liste de capture
La liste de capture est utilisée pour capturer les variables dans la portée externe de l'expression lambda. Les variables peuvent être capturées par valeur ou par référence.

Paramètres
La liste des paramètres vous permet de passer des arguments aux expressions lambda.

Type de retour
Si l'expression lambda renvoie une valeur, vous devez spécifier le type de retour. Sinon, le type de retour devrait être void.

Corps de fonction
Semblable à une fonction normale, le corps de la fonction contient le code à utiliser comme expression lambda.

Utilisation
Voici quelques exemples d'utilisation d'expressions lambda :

Exemple de base

[]() { std::cout << "Hello, world!" << std::endl; }();

Passer des paramètres

int add(int a, int b) { return a + b; }

[] (int a, int b) { return a + b;  }(5, 6); // 调用 lambda 表达式

Capture de variables

int x = 10;
[x] () { std::cout << "Value of x: " << x << std::endl; }();

Pratique case
Envisagez une liste de paires de besoins Exemple de tri des nombres :

std::vector<int> numbers = {2, 5, 1, 3, 4};

std::sort(numbers.begin(), numbers.end(),
    [](int a, int b) { return a < b; });

for (auto num : numbers) {
    std::cout << num << " ";
}

Sortie :

1 2 3 4 5

Conclusion
Les expressions Lambda sont un outil puissant pour définir des fonctions en ligne en C++. Ils simplifient le code, améliorent la lisibilité et réduisent le besoin de code passe-partout. En comprenant leur syntaxe, leur utilisation et leurs exemples pratiques, vous pouvez utiliser efficacement les expressions lambda pour résoudre divers problèmes de programmation.

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