ホームページ  >  記事  >  バックエンド開発  >  C++ 関数のラムダ式は、パラメーターの受け渡しを介して外部変数をどのようにキャプチャしますか?

C++ 関数のラムダ式は、パラメーターの受け渡しを介して外部変数をどのようにキャプチャしますか?

王林
王林オリジナル
2024-04-25 16:15:01963ブラウズ

C ラムダ式は、パラメータの受け渡しを通じて外部変数をキャプチャできます。 具体的な手順は次のとおりです。 ラムダ式をパラメータとして受け入れる関数を定義します。ラムダ式で外部変数をキャプチャします。ラムダ式をパラメータとして関数に渡します。関数内でラムダ式を呼び出して、キャプチャされた外部変数にアクセスします。

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

C 関数のラムダ式がパラメータの受け渡しを通じて外部変数を取得する方法

ラムダ式は 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 は、値が 10 に初期化される外部 int 変数です。
  • print_captured_var この関数は、関数オブジェクト lambda をパラメータとして受け取り、その関数オブジェクトを呼び出し、キャプチャされた外部変数の値を実際のパラメータとして渡します。
  • lambda 関数は、外部変数 global_var をキャプチャするラムダ式です。ラムダ式では、外部変数の値が標準出力に出力されます。
  • main 関数は、ラムダ式をパラメータとして print_captured_var 関数に渡し、その関数を呼び出します。
  • print_captured_var この関数は、ラムダ式でキャプチャされた外部変数の値を出力し、「キャプチャされた変数: 10」という出力を取得します。

以上がC++ 関数のラムダ式は、パラメーターの受け渡しを介して外部変数をどのようにキャプチャしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。