สารบัญ:
วีดีโอ: แลมบ์ดา C ++ คืออะไร?
2024 ผู้เขียน: Lynn Donovan | [email protected]. แก้ไขล่าสุด: 2023-12-15 23:54
ใน C++11 และใหม่กว่า a แลมบ์ดา นิพจน์ - มักเรียกว่า แลมบ์ดา -เป็นวิธีที่สะดวกในการกำหนดอ็อบเจ็กต์ฟังก์ชันที่ไม่ระบุชื่อ (การปิด) ในตำแหน่งที่เรียกใช้หรือส่งผ่านเป็นอาร์กิวเมนต์ของฟังก์ชัน
สำหรับสิ่งนี้ Lambda C++ เป็นประเภทใด
[C++11: 5.1. 2/3]: ดิ พิมพ์ ของ แลมบ์ดา -การแสดงออก (ซึ่งก็คือ พิมพ์ ของวัตถุปิด) เป็นคลาสที่ไม่ซ้ำแบบไม่มีชื่อ พิมพ์ - เรียกว่าปิด พิมพ์ - ซึ่งมีคุณสมบัติตามที่อธิบายไว้ด้านล่าง ชั้นเรียนนี้ พิมพ์ ไม่ใช่ผลรวม (8.5.
นอกจากนี้ เหตุใดเราจึงต้องใช้นิพจน์แลมบ์ดาใน C ++ C++ แนะนำวัตถุฟังก์ชันหรือ functor Functors เป็น คลาสที่โอเวอร์โหลดตัวดำเนินการ () ภาษาโปรแกรมอื่น ๆ เช่น Haskell, C#, Erlang หรือ F# เปิดใช้งานคำจำกัดความของฟังก์ชันได้ทันทีที่ใช้ เหล่านี้ เป็น เรียกว่า นิพจน์แลมบ์ดา เพราะไวยากรณ์ของมัน เป็น แรงบันดาลใจใน แลมบ์ดา แคลคูลัส.
คำถามก็คือคุณจะส่งฟังก์ชันแลมบ์ดาใน C ++ ได้อย่างไร
3 วิธีในการส่งแลมบ์ดาเป็นอาร์กิวเมนต์ไปยังฟังก์ชัน:
- ใช้ std::function เพื่อประกาศอ็อบเจ็กต์แลมบ์ดา เป็นโมฆะแลมบ์ดาExample1()
- การใช้ typedef เพื่อประกาศประเภทฟังก์ชันและกำหนดฟังก์ชันแลมบ์ดา เป็นโมฆะแลมบ์ดาExample2()
- การใช้ struct เพื่อประกาศแลมบ์ดา
การปิดแลมบ์ดาคืออะไร?
NS แลมบ์ดา เป็นฟังก์ชันที่กำหนดแบบอินไลน์มากกว่าวิธีมาตรฐานของการประกาศฟังก์ชัน แลมบ์ดาส มักจะส่งผ่านเป็นวัตถุได้ NS ปิด เป็นฟังก์ชันที่ล้อมรอบสถานะโดยรอบโดยการอ้างอิงฟิลด์ภายนอกร่างกาย