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

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

WBOY
Libérer: 2024-04-17 09:51:01
original
622 Les gens l'ont consulté

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 {
  // 函数体
}
Copier après la connexion

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; }();
Copier après la connexion

Passer des paramètres

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

[] (int a, int b) { return a + b;  }(5, 6); // 调用 lambda 表达式
Copier après la connexion

Capture de variables

int x = 10;
[x] () { std::cout << "Value of x: " << x << std::endl; }();
Copier après la connexion

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 << " ";
}
Copier après la connexion

Sortie :

1 2 3 4 5
Copier après la connexion

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!

Étiquettes associées:
c++
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal