สารบัญ:

แลมบ์ดา C ++ คืออะไร?
แลมบ์ดา C ++ คืออะไร?

วีดีโอ: แลมบ์ดา C ++ คืออะไร?

วีดีโอ: แลมบ์ดา C ++ คืออะไร?
วีดีโอ: Lambda Function คืออะไร? ฟังก์ชันเล็กๆ ในบรรทัดเดียว | 2023 2024, อาจ
Anonim

ใน C++11 และใหม่กว่า a แลมบ์ดา นิพจน์ - มักเรียกว่า แลมบ์ดา -เป็นวิธีที่สะดวกในการกำหนดอ็อบเจ็กต์ฟังก์ชันที่ไม่ระบุชื่อ (การปิด) ในตำแหน่งที่เรียกใช้หรือส่งผ่านเป็นอาร์กิวเมนต์ของฟังก์ชัน

สำหรับสิ่งนี้ Lambda C++ เป็นประเภทใด

[C++11: 5.1. 2/3]: ดิ พิมพ์ ของ แลมบ์ดา -การแสดงออก (ซึ่งก็คือ พิมพ์ ของวัตถุปิด) เป็นคลาสที่ไม่ซ้ำแบบไม่มีชื่อ พิมพ์ - เรียกว่าปิด พิมพ์ - ซึ่งมีคุณสมบัติตามที่อธิบายไว้ด้านล่าง ชั้นเรียนนี้ พิมพ์ ไม่ใช่ผลรวม (8.5.

นอกจากนี้ เหตุใดเราจึงต้องใช้นิพจน์แลมบ์ดาใน C ++ C++ แนะนำวัตถุฟังก์ชันหรือ functor Functors เป็น คลาสที่โอเวอร์โหลดตัวดำเนินการ () ภาษาโปรแกรมอื่น ๆ เช่น Haskell, C#, Erlang หรือ F# เปิดใช้งานคำจำกัดความของฟังก์ชันได้ทันทีที่ใช้ เหล่านี้ เป็น เรียกว่า นิพจน์แลมบ์ดา เพราะไวยากรณ์ของมัน เป็น แรงบันดาลใจใน แลมบ์ดา แคลคูลัส.

คำถามก็คือคุณจะส่งฟังก์ชันแลมบ์ดาใน C ++ ได้อย่างไร

3 วิธีในการส่งแลมบ์ดาเป็นอาร์กิวเมนต์ไปยังฟังก์ชัน:

  1. ใช้ std::function เพื่อประกาศอ็อบเจ็กต์แลมบ์ดา เป็นโมฆะแลมบ์ดาExample1()
  2. การใช้ typedef เพื่อประกาศประเภทฟังก์ชันและกำหนดฟังก์ชันแลมบ์ดา เป็นโมฆะแลมบ์ดาExample2()
  3. การใช้ struct เพื่อประกาศแลมบ์ดา

การปิดแลมบ์ดาคืออะไร?

NS แลมบ์ดา เป็นฟังก์ชันที่กำหนดแบบอินไลน์มากกว่าวิธีมาตรฐานของการประกาศฟังก์ชัน แลมบ์ดาส มักจะส่งผ่านเป็นวัตถุได้ NS ปิด เป็นฟังก์ชันที่ล้อมรอบสถานะโดยรอบโดยการอ้างอิงฟิลด์ภายนอกร่างกาย