Maison > développement back-end > C++ > Quels sont les scénarios d'utilisation des expressions lambda dans les fonctions C++ ?

Quels sont les scénarios d'utilisation des expressions lambda dans les fonctions C++ ?

王林
Libérer: 2024-04-19 14:45:02
original
950 Les gens l'ont consulté

Les expressions Lambda sont des fonctions anonymes qui peuvent être utilisées pour simplifier le code, servir de fonctions de rappel ou de fonctions paramétrées. Les avantages incluent la simplification du code, la réduction de la redondance et l'augmentation de la flexibilité.

C++ 函数的 lambda 표达式的使用场景是什么?

Scénarios d'utilisation des expressions lambda dans les fonctions C++

L'expression lambda est une fonction anonyme qui peut être définie et utilisée dans le corps de la fonction. Contrairement aux fonctions ordinaires, les expressions lambda n'ont pas de nom et ne peuvent être utilisées que dans le cadre dans lequel elles sont définies.

Scénarios d'utilisation :

  1. Simplification du code : L'utilisation d'expressions lambda peut simplifier le code avec des fonctions simples. Par exemple, le code suivant utilise une expression lambda pour incrémenter chaque élément de la liste de 1 :
#include <iostream>
#include <vector>

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

  // 使用 lambda 表达式增加每个元素
  std::for_each(numbers.begin(), numbers.end(), [](int& n) { n++; });

  // 打印增加后的列表
  for (int num : numbers) {
    std::cout << num << " ";
  }

  return 0;
}
Copier après la connexion
  1. En tant que fonction de rappel : les expressions lambda peuvent être transmises à d'autres fonctions en tant que fonctions de rappel. Par exemple, le code suivant utilise une expression lambda comme fonction de rappel pour trier les éléments d'une liste :
#include <iostream>
#include <vector>
#include <algorithm>

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

  // 使用 lambda 表达式对列表排序
  std::sort(numbers.begin(), numbers.end(), [](int a, int b) { return a < b; });

  // 打印排序后的列表
  for (int num : numbers) {
    std::cout << num << " ";
  }

  return 0;
}
Copier après la connexion
  1. Paramétrage des fonctions : les expressions lambda peuvent être utilisées pour paramétrer des fonctions. Par exemple, le code suivant définit une fonction qui prend une expression lambda et effectue une opération itérative :
#include <iostream>
#include <vector>

void for_each(std::vector<int>& numbers, std::function<void(int&)> operation) {
  for (int& num : numbers) {
    operation(num);
  }
}

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

  // 使用 lambda 表达式参数化 for_each 函数
  for_each(numbers, [](int& n) { n *= n; });

  // 打印平方后的列表
  for (int num : numbers) {
    std::cout << num << " ";
  }

  return 0;
}
Copier après la connexion

Avantages :

  • Simplifier le code
  • Réduire la redondance
  • Augmenter la flexibilité

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:
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