Bagaimana untuk merumuskan senarai parameter ungkapan lambda C++?

WBOY
Lepaskan: 2024-04-18 09:00:02
asal
451 orang telah melayarinya

Sintaks senarai parameter bagi ungkapan Lambda ialah: [capture-list](parameters) -> return-type { body }, di mana: capture-list menangkap pembolehubah luaran. parameter ialah senarai parameter. jenis pulangan ialah jenis pulangan. badan ialah badan yang berfungsi.

C++ lambda 表达式的参数列表如何制定?

Formulasi senarai parameter bagi C++ Lambda expression

Ekspresi Lambda ialah fungsi sebaris yang ringkas dan berkuasa dalam C++ yang boleh menangkap pembolehubah luaran dan menyimpannya pada timbunan. Sintaks senarai parameter ungkapan lambda adalah seperti berikut:

[capture-list](parameters) -> return-type { body }
Salin selepas log masuk

capture-list menentukan pembolehubah luaran untuk ditangkap, yang boleh mempunyai nilai berikut:

  • [=]: Tangkap semua pembolehubah luaran
  • [=]: 捕获所有外部变量
  • [&]: 捕获所有外部变量,并作为引用传递
  • [parameter1, parameter2, ...]: 捕获指定的外部变量
  • [parameter1, parameter2, ..., &parameter3, &parameter4, ...]: 既捕获指定的变量,又以引用形式捕获其他变量

parameters 指定 lambda 表达式的参数列表,语法与普通函数的参数列表相同。

return-type 指定 lambda 表达式的返回类型,可以是任何有效的 C++ 数据类型。

body 是 lambda 表达式的函数体,包含要执行的代码。

实战案例

考虑一个需要对整数列表进行排序的函数。我们可以使用 lambda 表达式定义一个比较函数:

auto compare = [](int a, int b) { return a > b; };
Salin selepas log masuk

在这个例子中,lambda 表达式捕获了外部变量 ab

我们也可以使用 lambda 表达式来创建匿名函数并立即执行:

auto print_name = [](string name) { cout << "Hello, " << name << endl; };
print_name("John Doe");
Salin selepas log masuk

这个 lambda 表达式捕获了外部变量 name,并将其作为参数传递给了 cout[&]: Tangkap semua pembolehubah luaran dan hantarkannya sebagai rujukan

[parameter1, parameter2, ...]: Tangkap pembolehubah luaran yang ditentukan

[parameter1, parameter2, ..., &parameter3, &parameter4, ...]: menangkap kedua-dua pembolehubah yang ditentukan dan pembolehubah lain dalam bentuk rujukan

🎜parameter🎜 Menentukan senarai parameter ungkapan lambda Sintaks adalah sama dengan senarai parameter fungsi biasa. 🎜🎜🎜return-type🎜 Menentukan jenis pemulangan ungkapan lambda, yang boleh menjadi mana-mana jenis data C++ yang sah. 🎜🎜🎜body🎜 ialah badan fungsi ungkapan lambda dan mengandungi kod yang akan dilaksanakan. 🎜🎜🎜Kes Praktikal🎜🎜🎜Pertimbangkan fungsi yang perlu mengisih senarai integer. Kita boleh mentakrifkan fungsi perbandingan menggunakan ungkapan lambda: 🎜rrreee🎜Dalam contoh ini, ungkapan lambda menangkap pembolehubah luaran a dan b. 🎜🎜Kami juga boleh menggunakan ungkapan lambda untuk mencipta fungsi tanpa nama dan melaksanakannya dengan segera: 🎜rrreee🎜Ungkapan lambda ini menangkap pembolehubah luaran nama dan menghantarnya sebagai parameter kepada cout fungsi. 🎜🎜Dengan senarai tangkapan tersuai dan senarai parameter, ungkapan lambda menyediakan alat yang berkuasa untuk menulis kod ringkas, fleksibel dan boleh digunakan semula dalam C++. 🎜

Atas ialah kandungan terperinci Bagaimana untuk merumuskan senarai parameter ungkapan lambda C++?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!