Maison  >  Article  >  développement back-end  >  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++ ?

王林
王林original
2024-04-19 14:45:02927parcourir

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;
}
  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;
}
  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;
}

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!

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