Heim >Backend-Entwicklung >C++ >Wie gibt ein C++-Lambda-Ausdruck ein Ergebnis zurück?

Wie gibt ein C++-Lambda-Ausdruck ein Ergebnis zurück?

WBOY
WBOYOriginal
2024-06-04 10:24:57472Durchsuche

C++-Lambda-Ausdrücke können die Return-Anweisung verwenden, um Ergebnisse zurückzugeben: Syntax: [capture-list] (parameters) -> return-type { // Function body // return expression } Praktischer Kampf: Lambda-Ausdrücke können zum Filtern verwendet werden ungerade Zahlen und berechne ihre Summe: int sum_odd = std::accumulate(numbers.begin(), zahlen.end(), 0, [](int sum, int num) { if (num % 2 == 1) { Rückgabesumme + Anzahl; } Rückgabesumme; });

C++ Lambda 表达式如何返回结果?

C++-Lambda-Ausdruck: Mechanismus zur Rückgabe von Ergebnissen

Lambda-Ausdruck ist eine anonyme Funktion in C++, die zur Darstellung kurzer und einfacher Codeblöcke verwendet werden kann. Wir können Ergebnisse in einem Lambda-Ausdruck zurückgeben, indem wir die return-Anweisung in seiner Syntax verwenden. return 语句。

语法:

[capture-list] (parameters) -> return-type {
  // 函数体
  return expression; // 返回结果
};

实战案例:

假设我们有一个容器 numbers,我们需要返回该容器中所有奇数的总和。我们可以使用 Lambda 表达式如下:

#include <vector>
#include <algorithm>

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

  // 使用 Lambda 表达式过滤奇数
  int sum_odd = std::accumulate(numbers.begin(), numbers.end(), 0, [](int sum, int num) {
    if (num % 2 == 1) {
      return sum + num;
    }
    return sum;
  });

  std::cout << "奇数总和:" << sum_odd << std::endl;

  return 0;
}

说明:

  • 在此 Lambda 表达式中,[sum, num] 是捕获列表,它包含我们需要的外部变量。
  • (sum, num) 是参数列表,它接收两个参数:sum 为累加值,num 为容器中的当前值。
  • -> int 指定了返回类型,在本例中为 int
  • 函数体使用条件语句检查 num 是否为奇数,如果是,则将其添加到 sum 中并返回,否则返回 sum
  • 最后,std::accumulate 函数将 Lambda 表达式用作二元运算符,将容器中的所有奇数累加到 sum_odd
Syntax:

rrreee🎜🎜Praktischer Fall: 🎜🎜🎜Angenommen, wir haben einen Container numbers und wir müssen die Summe aller ungeraden Zahlen im Container zurückgeben. Wir können den Lambda-Ausdruck wie folgt verwenden: 🎜rrreee🎜🎜Erklärung: 🎜🎜
  • In diesem Lambda-Ausdruck ist [sum, num] die Erfassungsliste, die enthält, was wir extern benötigen Variablen. 🎜
  • (sum, num) ist eine Parameterliste, die zwei Parameter empfängt: sum ist der akkumulierte Wert und num ist der Wert im Container Der aktuelle Wert. 🎜
  • -> int gibt den Rückgabetyp an, in diesem Fall int. 🎜
  • Der Funktionskörper verwendet bedingte Anweisungen, um zu prüfen, ob num eine ungerade Zahl ist. Wenn ja, fügen Sie sie zu sum hinzu und geben Sie sie zurück, andernfalls geben Sie sum zurück code>. 🎜
  • Schließlich verwendet die Funktion std::accumulate einen Lambda-Ausdruck als binären Operator, um alle ungeraden Zahlen im Container in sum_odd zu akkumulieren. 🎜🎜🎜Mit der oben genannten Methode können wir mithilfe von Lambda-Ausdrücken problemlos Ergebnisse von Funktionen zurückgeben. 🎜

Das obige ist der detaillierte Inhalt vonWie gibt ein C++-Lambda-Ausdruck ein Ergebnis zurück?. 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