Maison >développement back-end >C++ >Comment utiliser les expressions lambda en C++ ?

Comment utiliser les expressions lambda en C++ ?

王林
王林original
2024-04-12 15:51:01531parcourir

Les expressions Lambda sont des fonctions anonymes en C++ qui sont utilisées pour créer des fonctions ponctuelles. Ils accèdent aux variables de portée externes via des listes de capture et peuvent recevoir des paramètres et définir des types de retour. Les expressions Lambda sont souvent utilisées pour créer ou transmettre rapidement des fonctions au moment de l'exécution. Ils ont accès aux Lvalues ​​et Rvalues ​​et peuvent être avec ou sans état.

C++ 中如何使用lambda表达式?

Utilisation de l'expression Lambda en C++

L'expression Lambda est une fonctionnalité puissante en C++ qui vous permet de définir des fonctions anonymes uniques. Ils sont généralement utilisés lorsque les fonctions doivent être créées rapidement ou transmises au moment de l'exécution.

Syntaxe

La syntaxe générale d'une expression Lambda est la suivante :

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

Où :

  • liste de capture : Il s'agit d'une liste de capture qui spécifie les variables dans la portée externe auxquelles l'expression lambda peut accéder.
  • paramètres : Il s'agit de la liste des paramètres de la fonction d'expression lambda.
  • return_type : Il s'agit du type de retour de la fonction d'expression lambda.
  • body : Il s'agit du corps de la fonction d'expression lambda.

Cas pratique

Créons une expression lambda pour convertir la chaîne en majuscule :

auto to_upper = [](const std::string& s) -> std::string {
    std::string result;
    for (char c : s) {
        result.push_back(std::toupper(c));
    }
    return result;
};

Nous pouvons utiliser cette expression lambda si nécessaire, par exemple :

std::string my_string = "hello, world";
std::string upper_string = to_upper(my_string);

upper_string contiendra désormais la chaîne convertie "HELLO, MONDE".

Remarque

  • Les expressions Lambda sont des fonctions anonymes innommables.
  • Les variables de la liste de capture doivent être des variables définies dans la portée externe.
  • Les expressions Lambda ont accès à Lvalue et Rvalue.
  • Les expressions Lambda peuvent être avec ou sans état. Les expressions lambda avec état capturent les variables et les modifient, tandis que les expressions lambda sans état ne lisent que les variables.

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