Mục lục:

C ++ lambda là gì?
C ++ lambda là gì?

Video: C ++ lambda là gì?

Video: C ++ lambda là gì?
Video: Biểu Thức Lambda Trong C++ - Phần 1 2024, Tháng mười một
Anonim

Trong C ++ 11 trở lên, a lambda biểu thức thường được gọi là lambda -là một cách thuận tiện để xác định một đối tượng hàm ẩn danh (một bao đóng) ngay tại vị trí mà nó được gọi hoặc truyền dưới dạng đối số cho một hàm.

Về vấn đề này, Lambda C ++ là loại nào?

[C ++ 11: 5.1. 2/3]: Cái kiểu sau đó lambda -expression (cũng là kiểu của đối tượng đóng) là một lớp không liên hợp duy nhất, không tên kiểu - được gọi là sự đóng cửa kiểu - thuộc tính của ai được mô tả dưới đây. Lớp này kiểu không phải là một tập hợp (8,5.

Ngoài ra, tại sao chúng ta cần biểu thức lambda trong C ++? C ++ các đối tượng chức năng được giới thiệu hoặc bộ chức năng. Diễn viên vui nhộn là các lớp nạp chồng toán tử (). Các ngôn ngữ lập trình khác như Haskell, C #, Erlang hoặc F # cho phép định nghĩa hàm ngay tại nơi chúng được sử dụng. Này là được biết như biểu thức lambda bởi vì cú pháp của nó Là lấy cảm hứng từ lambda tích.

Một câu hỏi nữa là, làm cách nào để bạn truyền một hàm lambda trong C ++?

3 cách để truyền lambda dưới dạng đối số cho một hàm:

  1. Sử dụng hàm std:: để khai báo một đối tượng lambda. void lambdaExample1 ()
  2. Sử dụng typedef để khai báo một kiểu hàm và gán cho nó một hàm lambda. void lambdaExample2 ()
  3. Sử dụng struct để khai báo lambda.

Đóng lambda là gì?

MỘT lambda thực chất là một hàm được định nghĩa nội tuyến chứ không phải là phương pháp khai báo hàm tiêu chuẩn. Lambdas thường có thể được chuyển xung quanh dưới dạng các đối tượng. MỘT Khép kín là một hàm bao bọc trạng thái xung quanh của nó bằng cách tham chiếu đến các trường bên ngoài phần thân của nó.