Maison >développement back-end >C++ >Comment une expression lambda dans une fonction C++ capture-t-elle des variables externes via le passage de paramètres ?
Les expressions lambda C++ peuvent capturer des variables externes via le passage de paramètres. Les étapes spécifiques sont les suivantes : Définir une fonction qui accepte une expression lambda comme paramètre. Capturez les variables externes dans les expressions lambda. Passez une expression lambda en tant que paramètre à la fonction. Appelez l'expression lambda dans la fonction pour accéder aux variables externes capturées.
Comment les expressions Lambda dans les fonctions C++ capturent des variables externes avec le passage de paramètres
Les expressions Lambda sont un moyen simple de définir des fonctions anonymes en C++. Ils peuvent capturer des variables externes, les rendant accessibles dans le cadre de la fonction. Lorsque vous devez transmettre une expression lambda en tant que paramètre à une autre fonction, vous pouvez capturer des variables externes via le passage de paramètres.
Les étapes suivantes montrent comment capturer des variables externes par passage de paramètres :
#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; }
Sortie :
捕获的变量:10
Dans cet exemple :
global_var
est une variable int externe dont la valeur est initialisée dix. global_var
是一个外部 int 变量,其值初始化为 10。print_captured_var
函数接受一个函数对象 lambda
作为参数,它将调用该函数对象并传递一个捕获的外部变量的值作为实参。lambda
函数是一个 lambda 表达式,它捕获外部变量 global_var
。在 lambda 表达式中,外部变量的值被打印到标准输出。main
函数将 lambda 表达式作为参数传递给 print_captured_var
函数,然后调用该函数。print_captured_var
print_captured_var
accepte un objet fonction lambda
comme paramètre, et elle appellera l'objet fonction et transmettra la valeur d'une variable externe capturée comme paramètre réel. lambda
est une expression lambda qui capture la variable externe global_var
. Dans une expression lambda, la valeur de la variable externe est imprimée sur la sortie standard. 🎜🎜La fonction main
transmet l'expression lambda en tant que paramètre à la fonction print_captured_var
puis appelle la fonction. La fonction 🎜🎜print_captured_var
imprime la valeur de la variable externe capturée dans l'expression lambda, obtenant la sortie "Variable capturée : 10". 🎜🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!