Heim  >  Artikel  >  Backend-Entwicklung  >  Welche Verwendungsszenarien gibt es für Lambda-Ausdrücke in C++-Funktionen?

Welche Verwendungsszenarien gibt es für Lambda-Ausdrücke in C++-Funktionen?

王林
王林Original
2024-04-19 14:45:02905Durchsuche

Lambda-Ausdrücke sind anonyme Funktionen, die zur Vereinfachung von Code, als Rückruffunktionen oder als parametrisierte Funktionen verwendet werden können. Zu den Vorteilen gehören die Vereinfachung des Codes, die Reduzierung der Redundanz und die Erhöhung der Flexibilität.

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

Verwendungsszenarien von Lambda-Ausdrücken in C++-Funktionen

Lambda-Ausdruck ist eine anonyme Funktion, die innerhalb des Funktionskörpers definiert und verwendet werden kann. Im Gegensatz zu gewöhnlichen Funktionen haben Lambda-Ausdrücke keinen Namen und können nur innerhalb des definierten Bereichs verwendet werden.

Verwendungsszenarien:

  1. Code vereinfachen: Die Verwendung von Lambda-Ausdrücken kann Code mit einfachen Funktionen vereinfachen. Der folgende Code verwendet beispielsweise einen Lambda-Ausdruck, um jedes Element in der Liste um 1 zu erhöhen:
#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. Als Rückruffunktion: Lambda-Ausdrücke können als Rückruffunktionen an andere Funktionen übergeben werden. Der folgende Code verwendet beispielsweise einen Lambda-Ausdruck als Rückruffunktion, um die Elemente in einer Liste zu sortieren:
#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. Funktionsparametrisierung: Lambda-Ausdrücke können zum Parametrisieren von Funktionen verwendet werden. Der folgende Code definiert beispielsweise eine Funktion, die einen Lambda-Ausdruck annimmt und eine iterative Operation ausführt:
#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;
}

Vorteile:

  • Code vereinfachen
  • Redundanz reduzieren
  • Flexibilität erhöhen

Das obige ist der detaillierte Inhalt vonWelche Verwendungsszenarien gibt es für Lambda-Ausdrücke in C++-Funktionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn