Rumah > Artikel > pembangunan bahagian belakang > Apakah perbezaan antara ungkapan lambda dan penunjuk fungsi dalam fungsi C++?
Ekspresi Lambda dan penunjuk fungsi ialah kedua-dua mekanisme untuk merangkum kod dalam C++, tetapi ia berbeza dalam pelaksanaan dan ciri: Pelaksanaan: Penunjuk fungsi menghala ke alamat memori fungsi, manakala ungkapan lambda ialah blok kod tanpa nama sebaris. Jenis pemulangan: Jenis pemulangan penunjuk fungsi ditetapkan, manakala jenis pemulangan ungkapan lambda ditentukan oleh blok kod badannya. Tangkapan pembolehubah: Penunjuk fungsi tidak boleh menangkap pembolehubah luaran, tetapi ungkapan lambda boleh menangkap pembolehubah luaran melalui rujukan atau nilai melalui kata kunci [&] atau [=]. Sintaks: Gunakan asterisk (*) untuk penunjuk fungsi dan kurungan segi empat sama ([]) untuk ungkapan lambda.
Perbezaan antara ungkapan Lambda dan penunjuk fungsi dalam fungsi C++
Pengenalan
Ekspresi Lambda dan penunjuk fungsi ialah mekanisme dalam C++ yang digunakan untuk merangkum kod yang boleh dipanggil ke dalam kod panggilan Walaupun mereka mempunyai tujuan yang sama, mereka mempunyai beberapa perbezaan utama dalam pelaksanaan dan ciri mereka.
Pelaksanaan
Jenis pemulangan
Tangkapan pembolehubah
[&]
(按引用捕获)或 [=]
(按值捕获)关键字捕获外部变量。语法
returnType (*functionPointerName)(parameterList);
[captureList](parameterList) -> returnType { body }
Syntax
function Pointer: returnType (*FunctionPointername) (ParameterList);
lambda Ekspresi: [captureList] (parameterlist) -& gt; { kod badan atures
Penunjuk fungsi Ekspresi Lambda
pelaksanaan | menunjuk ke alamat memori | blok kod tanpa nama sebaris |
---|---|---|
ditetapkan kepada jenis badan | ditetapkan kepada jenis fungsi | penangkapan pembolehubah |
Dibenarkan, tangkap mengikut nilai atau rujukan | Sintaks | |
Gunakan kurungan segi empat sama ([]) |
Atas ialah kandungan terperinci Apakah perbezaan antara ungkapan lambda dan penunjuk fungsi dalam fungsi C++?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!