Ekspresi lambda C++ boleh menangkap pembolehubah luaran melalui hantaran parameter Langkah-langkah khusus adalah seperti berikut: Tentukan fungsi yang menerima ungkapan lambda sebagai parameter. Tangkap pembolehubah luaran dalam ungkapan lambda. Lulus ungkapan lambda sebagai parameter kepada fungsi. Panggil ungkapan lambda dalam fungsi untuk mengakses pembolehubah luaran yang ditangkap.
Cara Ungkapan Lambda dalam C++ Berfungsi Menangkap Pembolehubah Luaran dengan Hantaran Parameter
Ekspresi Lambda ialah cara mudah untuk mentakrifkan fungsi tanpa nama dalam C++. Mereka boleh menangkap pembolehubah luaran, menjadikannya boleh diakses dalam skop fungsi. Apabila anda perlu menghantar ungkapan lambda sebagai parameter kepada fungsi lain, anda boleh menangkap pembolehubah luaran melalui lulus parameter.
Langkah berikut menunjukkan cara untuk menangkap pembolehubah luaran dengan lulus parameter:
#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; }
Output:
捕获的变量:10
Dalam contoh ini:
global_var
是一个外部 int 变量,其值初始化为 10。print_captured_var
函数接受一个函数对象 lambda
作为参数,它将调用该函数对象并传递一个捕获的外部变量的值作为实参。lambda
函数是一个 lambda 表达式,它捕获外部变量 global_var
。在 lambda 表达式中,外部变量的值被打印到标准输出。main
函数将 lambda 表达式作为参数传递给 print_captured_var
函数,然后调用该函数。print_captured_var
print_captured_var
menerima objek fungsi lambda
sebagai parameter, dan ia akan memanggil objek fungsi dan menghantar nilai pembolehubah luaran yang ditangkap sebagai parameter sebenar. lambda
ialah ungkapan lambda yang menangkap pembolehubah luaran global_var
. Dalam ungkapan lambda, nilai pembolehubah luaran dicetak kepada output standard. 🎜🎜Fungsi utama
menghantar ungkapan lambda sebagai parameter kepada fungsi print_captured_var
dan kemudian memanggil fungsi tersebut. Fungsi 🎜🎜print_captured_var
mencetak nilai pembolehubah luaran yang ditangkap dalam ungkapan lambda, mendapatkan output "Pembolehubah ditangkap: 10". 🎜🎜Atas ialah kandungan terperinci Bagaimanakah ungkapan lambda dalam fungsi C++ menangkap pembolehubah luaran melalui lulus parameter?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!