Ungkapan Lambda ialah fungsi tanpa nama dengan sintaks berikut: [senarai tangkapan] (senarai parameter) -> jenis pulangan {function body} Senarai tangkapan menentukan pembolehubah untuk ditangkap dari persekitaran sekeliling, senarai parameter menentukan senarai parameter , dan jenis pulangan menentukan jenis Pulangan, badan fungsi mentakrifkan badan fungsi. Pembolehubah tangkapan ditangkap melalui rujukan, dan jenis boleh disimpulkan daripada senarai tangkapan, senarai parameter dan jenis pulangan.
Ungkapan Lambda ialah fungsi tanpa nama yang membolehkan anda mencipta objek boleh panggil tanpa mentakrifkan fungsi eksplisit. Sintaksnya adalah seperti berikut:
[capture list] (parameter list) -> return type { function body }
Di mana:
Berikut ialah beberapa contoh:
// Capture 变量 x 并返回 x 的平方 auto square = [](int x) { return x * x; }; // 捕获变量 y 并返回 y 的立方 auto cube = [&](int y) { return y * y * y; };
Nota:
Berikut ialah contoh mudah menggunakan ungkapan lambda:
#include <iostream> #include <vector> using namespace std; int main() { // 使用 lambda 表达式对向量中的每个元素平方 vector<int> numbers = {1, 2, 3, 4, 5}; for_each(numbers.begin(), numbers.end(), [](int& num) { num *= num; }); // 使用 lambda 表达式对向量进行排序 sort(numbers.begin(), numbers.end(), [](int a, int b) { return a > b; }); // 打印排序后的向量 for (int num : numbers) { cout << num << " "; } cout << endl; return 0; }
Atas ialah kandungan terperinci Apakah peraturan sintaks untuk ungkapan lambda C++?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!