Lambdas en C ++

Lambdas en C ++
«Avec l'aide d'illustrations, nous discuterons des fonctions C ++ Lambda dans cet article.

Nous pouvons définir des instances de méthode anonyme dans les instructions C ++ Lambda, qui pourraient ensuite être utilisées en ligne ou fournies comme paramètres. Puisque nous n'aurons pas à remplacer l'opérateur dans une classe ou une structure différente, elles sont beaucoup plus efficaces."

Syntaxe de la fonction lambda

L'introducteur de lambda [] dans ce cas représente le début de l'instruction Lambda, et la liste d'arguments [] est identique à l'opérateur () d'une méthode standard.

Exemple n ° 1

Dans ce cas, nous avons compilé un code d'instruction C ++ Lambda de base qui affiche le nom de l'Allemagne.

#inclure
Utilisation de Namespace Std;
int main()
Auto Country = [] ()
couter << "Germany";
;
pays();
retour 0;

Nous inclurons le fichier d'en-tête requis et l'espace de noms standard au début du programme. Ensuite, nous commençons le codage à l'intérieur de la fonction principale (). Nous allons créer une méthode Lambda en utilisant le mot-clé «Auto». Nous attribuerons la variable «pays» à la méthode lambda. Ensuite, en utilisant la variable du pays et l'opérateur (), nous avons invoqué la méthode lambda. De plus, nous avons utilisé la déclaration «cout» pour imprimer le nom du pays. Invoquons la fonction lambda. En fin de compte, nous entrons simplement la commande «return 0».

Exemple n ° 2

Les déclarations de Lambda nécessiteraient également des arguments, tout comme une méthode standard. Ici, nous avons construit une méthode lambda qui affiche la somme de deux nombres. La méthode lambda a ensuite été invoquée avec deux paramètres entiers.

#inclure
Utilisation de Namespace Std;
int main()
auto add = [] (int x, int y)
couter << "Sum of two numbers = " << x + y;
;
ajouter (250, 69);
retour 0;

Nous commençons le programme en incluant la bibliothèque . Ensuite, nous utilisons l'espace de noms standard. Nous appellerons la fonction principale (). Maintenant, nous créons une fonction lambda de «ajouter». Ici, nous passons deux variables comme les arguments de cette fonction. L'énoncé «cout» est utilisé pour imprimer la somme de ces valeurs spécifiées. À l'étape suivante, nous appelons la méthode lambda. Cette méthode contient deux entiers comme paramètres. Enfin, nous devons entrer la commande 'return 0'.

Exemple n ° 3

Ici, nous avons construit une méthode lambda pour déterminer à la fois la moyenne de 2 nombres et la somme de 2 nombres. En fournissant «S» comme troisième paramètre à main (), nous pouvons calculer la somme de deux nombres. Même si le lambda fournit un nombre aléatoire dans ce cas, la conversion de type double est effectuée directement. La moyenne est ensuite calculée en utilisant une chaîne différente comme paramètre:

#inclure
Utilisation de Namespace Std;
int main()
auto op = [] (int i, int j, string op) -> double
if (op == "s")
retour i + j;

autre
retour (i + j) / 2.0;

;
int n_1 = 11;
int n_2 = 21;
auto s = op (n_1, n_2, "s");
couter << "Sum of two numbers= " << s << endl;
auto moyen = op (n_1, n_2, "moyen");
couter << "Average = " << average;
retour 0;

Nous allons intégrer le module pour les fonctionnalités d'entrée et de sortie. La fonction lambda aura été créée à l'étape suivante. Ici, la fonction Lambda «OP» est appliquée par son type de retour explicite «double». Cette fonction lambda renvoie la somme ou la moyenne des valeurs. Nous fournirons deux variables ayant un type de données entier et une chaîne comme paramètres de la fonction lambda.

De plus, nous avons appliqué la déclaration «IF». Si la valeur de la variable «OP» est égale à la somme des nombres. Ensuite, il renvoie la valeur en ajoutant les deux nombres. Sinon, il renvoie la moyenne en divisant la somme des nombres par 2. Nous initialisons deux nouvelles variables et définissons leurs valeurs. Nous utilisons la déclaration «cout» pour afficher la somme. Maintenant, pour obtenir la moyenne des valeurs requises, nous appliquons la fonction lambda «moyenne». Nous avons donné les entiers comme arguments à cette fonction lambda. La déclaration «cout» sera utilisée pour montrer la valeur moyenne. Pour résilier le code, nous utiliserons «Retour 0».

Exemple n ° 4

Par défaut, les méthodes Lambda ne peuvent pas récupérer les variables de la fonction en retrait. Nous utilisons la déclaration de capture pour obtenir l'accès à ces attributs. Ceci est identique à invoquer une méthode par valeur. Lorsque le lambda est construit dans ce cas, la valeur d'origine est prise. La variable incluse dans l'argument Lambda ne sera lue qu'à ce stade; ça ne peut pas être changé.

Ce qui suit est un exemple de fonction Lambda simple avec capture par valeur:

Ainsi, la fonction lambda a l'accessibilité à la variable int «n» en raison de «s» initiaux. Comme int «n» ne sera pas récupéré du corps de lambda à moins que nous ne l'éliminions de la clause de capture, alors nous trouverons une erreur.

#inclure
Utilisation de Namespace Std;
int main()
int initial_s = 389;
auto add_to_s = [initial_s] (int n)
return initial_s + n;
;
int final_s = add_to_s (45);
couter << "389 + 45 = " << final_s;
retour 0;

Tout d'abord, pour les processus d'entrée et de sortie, le fichier d'en-tête sera inclus. Ainsi que cet espace de noms standard sera ajouté. Nous appelons maintenant la fonction principale (). Dans le corps de la fonction principale (), nous initialisons une variable «initial_s». Nous spécifions la valeur «389» à cette variable. Ensuite, nous capturons la variable «initial_s» par sa valeur. Par conséquent, nous utilisons la fonction lambda de "add_to_s". Nous passerons deux variables comme paramètre à la fonction lambda.

Le premier paramètre montre la variable «initial_s», et le deuxième paramètre montre la variable «n». La somme sera conservée dans une variable «final_s». Le type de données de cette variable est un entier. Avant d'ajouter la commande «return 0», nous devons utiliser l'instruction «cout». L'instruction «cout» montre la valeur résultante.

Conclusion

Le guide des instructions C ++ Lambda a conclu. La nouvelle notion en C ++, en ligne, est très utile chaque fois que nous avons besoin d'exécuter un court morceau de code. De plus, les lambdas peuvent être déclarés génériques et appliqués à toute sorte de données. Cet article a quatre instances distinctes que nous avons pleinement implémentées. La fonction lambda est utilisée sans aucun argument en premier lieu. Nous fournissons à la méthode Lambda une variété de paramètres dans le deuxième exemple. De même, nous avons utilisé le type de retour explicite de la méthode lambda dans le troisième scénario. La fonction lambda et la clause de capture ont été utilisées dans le dernier.