Expressions C ++ Lambda

Expressions C ++ Lambda

Les expressions de lambda sont l'une des caractéristiques les plus puissantes de C++. Lambda est introduite dans le 11e Version de C ++ et est également disponible dans les versions C ++ 14 et 17.

Chaque fois que nous avons besoin d'un pointeur de fonction dans notre programme, dans ce cas particulier, nous pouvons utiliser Lambda. Il fournit des options supplémentaires au programmeur C ++ pour écrire une définition de fonction sans définir une fonction. Maintenant, nous discutons des détails sur le concept de l'expression de lambda.

Syntaxe lambda

La syntaxe Lambda se compose principalement de trois parties. Ils sont

  1. []
  2. ()

Où [] est appelé liste de capture.

() est appelé argument de fonction.

est appelé corps de fonction.

Les éléments de lambda

  1. Liste de capture: Ici, nous écrivons l'expression ou la fonction de lambda, tout ce qui sera nécessaire dans le programme.
  2. Paramètres: Il est également connu sous le nom de déclaration de lambda. Il peut être utilisé comme cas facultatif.
  3. Définition de la méthode: Ici, nous expliquons comment la fonction se comportera dans le programme.

Définir et appeler une fonction

int main()

[] 90 // Capture List and Paramètre.
couter<< “The coding and expression part of Lambda” << endl ;
(); // Open et fermer l'attelle invoqueront dans l'expression de Lambda.
retour 0;

Exemple de programmation 1

#inclure
Utilisation de Namespace Std;
struct trippleValue // définir un objet de fonction .
int opérator () (Int Value)
valeur de retour * 3;

;
int main()

TrippleValue TV; // Création d'objets .
int t = tv (2);
couter<< “ The Cube value is ” << t << endl ;
retour 0;

Sortir

Explication
Ici, nous voulons expliquer où les lambdas sont réellement appliqués au programme. Pour ce faire, ici, nous créons un objet de fonction nommé TV. Le nom de classe est TrippleValue. Nous créons donc le téléviseur d'objet de la classe TrippleValue, qui obtiendra une valeur et la transformera en valeur cube. À l'intérieur de la fonction principale, nous créons un téléviseur d'objet et passons une valeur de 2. Imprimez maintenant la valeur de t; il montre le résultat 8. Parce que le cube de 2 est 8.

Il sera observable que les lambdas ne sont pas utilisés dans le programme ci-dessus. Maintenant, le même type de programme sera exécuté à l'aide de Lambda Expression de manière très efficace dans le prochain programme.

Exemple de programmation 2

#inclure
Utilisation de Namespace Std;
int main()

Auto v = [] (int Value) Return Value * 2; ; // l'expression de lambda est utilisée ici.
int t = v (2);
couter<< << t << endl ;
retour 0;

Sortir

Explication
Nous avons maintenant fait le même programme avec l'aide de Lambda Expression. Ici, nous déclarons une variable V qui est une variable de type automatique, où nous stockons la valeur que l'expression de Lambda renvoie. Nous faisons ce calcul en une seule ligne. Maintenant, nous passons une valeur 2 à l'intérieur de la variable V et la stockons à l'intérieur de la variable T. Dans la ligne suivante du programme, nous imprimons simplement la variable t. Il montre le résultat 4. Alors que nous retournons une valeur à l'intérieur de l'expression de Lambda comme valeur * 2.

Exemple de programmation 3

#inclure
#inclure
#inclure
int main()

std :: vector vc 10, 20, 30, 40;
std :: for_each (VC.begin (), vc end (), [] (int n)
couter<< << n * n << endl ;
);
retour 0;

Sortir

Explication
Ici, nous prenons un vecteur nommé VC, qui prend certaines valeurs 10, 20, 30 et 40. Nous voulons carré chaque élément du vecteur. Pour cela, nous utilisons pour la boucle. À l'intérieur de la parenthèse de la boucle for_each, nous utilisons une expression de lambda. À l'intérieur de son corps, nous carrégeons simplement ces valeurs vectorielles.

Avantages de l'utilisation de lambda

  1. Lambda Expression augmente efficacement la lisibilité du programme.
  2. Il réduit le NO des lignes dans le code, et les programmes deviennent plus simples. En conséquence, le programmeur obtient un soulagement pour écrire moins de codage.
  3. Lambda Expression n'introduit aucun nouveau nom ou ligne supplémentaire au programme. Il augmente la robustesse du programme.
  4. Cela diminue également la complexité temporelle du programme.

Conclusion

Discutant des détails du concept du sujet d'expression de lambda en C ++, nous sommes arrivés à la conclusion qu'il s'agit de l'un des concepts puissants de C++. Grâce à l'expression de Lambda, nous pouvons facilement être fait un code de programmation de manière efficace. Si nous sommes en mesure de comprendre le concept de lambda et ses utilisations, alors avec l'aide de Lambda Expression, nous pouvons résoudre de nombreuses réponses de programmation très facilement.