>  기사  >  백엔드 개발  >  C++ 함수의 람다 표현식은 매개변수 전달을 통해 어떻게 외부 변수를 캡처합니까?

C++ 함수의 람다 표현식은 매개변수 전달을 통해 어떻게 외부 변수를 캡처합니까?

王林
王林원래의
2024-04-25 16:15:01968검색

C++ 람다 표현식은 매개변수 전달을 통해 외부 변수를 캡처할 수 있습니다. 구체적인 단계는 다음과 같습니다. 람다 표현식을 매개변수로 받아들이는 함수를 정의합니다. 람다 식에서 외부 변수를 캡처합니다. 함수에 매개변수로 람다 표현식을 전달합니다. 캡처된 외부 변수에 액세스하려면 함수에서 람다 식을 호출하세요.

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

C++ 함수의 람다 표현식이 매개변수 전달을 통해 외부 변수를 캡처하는 방법

Lambda 표현식은 C++에서 익명 함수를 정의하는 쉬운 방법입니다. 외부 변수를 캡처하여 함수 범위 내에서 액세스할 수 있습니다. 람다 식을 다른 함수에 매개 변수로 전달해야 하는 경우 매개 변수 전달을 통해 외부 변수를 캡처할 수 있습니다.

다음 단계에서는 매개변수 전달을 통해 외부 변수를 캡처하는 방법을 보여줍니다.

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

출력:

捕获的变量:10

이 예에서:

  • global_var은 값이 초기화되는 외부 int 변수입니다. 10. global_var 是一个外部 int 变量,其值初始化为 10。
  • print_captured_var 函数接受一个函数对象 lambda 作为参数,它将调用该函数对象并传递一个捕获的外部变量的值作为实参。
  • lambda 函数是一个 lambda 表达式,它捕获外部变量 global_var。在 lambda 表达式中,外部变量的值被打印到标准输出。
  • main 函数将 lambda 表达式作为参数传递给 print_captured_var 函数,然后调用该函数。
  • print_captured_var
  • print_captured_var 함수는 함수 개체 lambda를 매개변수로 받아들이고, 함수 개체를 호출하고 캡처된 외부 변수의 값을 실제 매개변수로 전달합니다.
🎜lambda 함수는 외부 변수 global_var를 캡처하는 람다 식입니다. 람다 식에서는 외부 변수의 값이 표준 출력으로 인쇄됩니다. 🎜🎜main 함수는 람다 표현식을 print_captured_var 함수에 매개변수로 전달한 다음 함수를 호출합니다. 🎜🎜print_captured_var 함수는 캡처된 외부 변수의 값을 람다 식으로 인쇄하여 "Captured Variable: 10"이라는 출력을 얻습니다. 🎜🎜

위 내용은 C++ 함수의 람다 표현식은 매개변수 전달을 통해 어떻게 외부 변수를 캡처합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.