Heim >Backend-Entwicklung >C++ >Wie erfasst ein Lambda-Ausdruck in einer C++-Funktion externe Variablen über die Parameterübergabe?

Wie erfasst ein Lambda-Ausdruck in einer C++-Funktion externe Variablen über die Parameterübergabe?

王林
王林Original
2024-04-25 16:15:011027Durchsuche

C++-Lambda-Ausdrücke können externe Variablen durch Parameterübergabe erfassen. Die spezifischen Schritte sind wie folgt: Definieren Sie eine Funktion, die einen Lambda-Ausdruck als Parameter akzeptiert. Erfassen Sie externe Variablen in Lambda-Ausdrücken. Übergeben Sie einen Lambda-Ausdruck als Parameter an die Funktion. Rufen Sie den Lambda-Ausdruck in der Funktion auf, um auf die erfassten externen Variablen zuzugreifen.

C++ 函数中的 lambda 表达式如何通过参数传递捕获外部变量?

Wie Lambda-Ausdrücke in C++-Funktionen externe Variablen mit Parameterübergabe erfassen

Lambda-Ausdrücke sind eine einfache Möglichkeit, anonyme Funktionen in C++ zu definieren. Sie können externe Variablen erfassen und sie so innerhalb des Funktionsumfangs zugänglich machen. Wenn Sie einen Lambda-Ausdruck als Parameter an eine andere Funktion übergeben müssen, können Sie externe Variablen durch Parameterübergabe erfassen.

Die folgenden Schritte zeigen, wie externe Variablen durch Parameterübergabe erfasst werden:

#include <iostream>

using namespace std;

// 外部变量
int global_var = 10;

// 接受 lambda 表达式作为参数的函数
void print_captured_var(function<void(int)> lambda) {
    // 在 lambda 表达式中访问捕获的外部变量
    lambda(global_var);
}

int main() {
    // 定义 lambda 表达式,捕获外部变量 global_var
    auto lambda = [](int x) { cout << "捕获的变量:" << x << endl; };

    // 将 lambda 表达式作为参数传递给 print_captured_var 函数
    print_captured_var(lambda);

    return 0;
}

Ausgabe:

捕获的变量:10

In diesem Beispiel:

  • global_var ist eine externe int-Variable, deren Wert initialisiert wird 10. global_var 是一个外部 int 变量,其值初始化为 10。
  • print_captured_var 函数接受一个函数对象 lambda 作为参数,它将调用该函数对象并传递一个捕获的外部变量的值作为实参。
  • lambda 函数是一个 lambda 表达式,它捕获外部变量 global_var。在 lambda 表达式中,外部变量的值被打印到标准输出。
  • main 函数将 lambda 表达式作为参数传递给 print_captured_var 函数,然后调用该函数。
  • print_captured_var
  • Die Funktion print_captured_var akzeptiert ein Funktionsobjekt lambda als Parameter, ruft das Funktionsobjekt auf und übergibt den Wert einer erfassten externen Variablen als tatsächlichen Parameter.
🎜Die lambda-Funktion ist ein Lambda-Ausdruck, der die externe Variable global_var erfasst. In einem Lambda-Ausdruck wird der Wert der externen Variablen auf der Standardausgabe ausgegeben. 🎜🎜Die Funktion main übergibt den Lambda-Ausdruck als Parameter an die Funktion print_captured_var und ruft dann die Funktion auf. 🎜🎜print_captured_var-Funktion druckt den Wert der erfassten externen Variablen im Lambda-Ausdruck und erhält die Ausgabe „Erfasste Variable: 10“. 🎜🎜

Das obige ist der detaillierte Inhalt vonWie erfasst ein Lambda-Ausdruck in einer C++-Funktion externe Variablen über die Parameterübergabe?. 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