1
Lambda trong C++ là gì?
0
Văn Nguyễn0 đã đăng:

Lambda trong C++ là gì? Khi nào thì nên sử dụng Lambda?

thêm bình luận...
2
minhkiet140 đã đăng:

Mình ví dụ một hàm đơn giản trong C++ như cộng hai số nguyên

int CongHaiSoNguyen(int a, int b){
    return a + b;
}

Khi đó, thay vì viết hàm như trên bạn có thể viết một cách ngắn gọn hơn như sau

auto CongHaiSoNguyen = [=](int a, int b) {return a + b;};

Ví dụ với a = 2, b = 3 thì kết quả trả về của hai hàm đều cùng bằng nhau. Ở trên mình sử dụng kiểu dữ liệu trả về là auto đó chẳng qua là xác định tự động kiểu dữ liệu trả về được hỗ trợ bởi phiên bản mới của C++ mà thôi.

Cách viết thứ hai gọi là biểu thứ Lambda (Lambda expression) trong C++, cấu trúc của một biểu thức lamda như sau,

[] () {};

Trong đó:

  • [] tạm gọi là danh sách trả về, ví dụ như bạn muốn trả về một giá trị thì sử dụng dấu = trong dấu ngoặc vuông như trên [=], nếu bạn muốn trả về một tham chiếu thì sử dụng dấu & khi đó sẽ là [&], còn một số kiểu trả về khác mình tạm thời không bàn tới ở đây.
  • () gọi là danh sách các tham số truyền vào, trong ví dụ ở trên mình sử dụng hai tham số truyền vào đó là hai số nguyên ab.
  • {} chứa mã nguồn thực hiện một nhiệm vụ nào đó, trong ví dụ ở trên là thực hiện cộng hai số nguyên.

Bạn nên sử dụng biểu thức lambda khi biểu thức đó đơn giảnngắn gọn. Đối với những hàm tính toán phức tạp thì tốt nhất là nên khai báo hàm tương tự như cách 1.

Hy vọng sẽ trả lời được câu hỏi của bạn.

thêm bình luận...

Câu trả lời của bạn

Chào mừng bạn đến với cộng đồng chia sẻ tri thức BanhoiTuidap.com, bạn có thể chia sẻ bất kỳ sự hiểu biết, nghiên cứu hoặc kinh nghiệm của mình về câu hỏi này với một số lưu ý:
  • Lịch sự, tế nhị.
  • Hạn chế ghi tắt, câu trả lời của bạn chỉ nên tập trung vào câu hỏi ở trên.
Câu trả lời của bạn sẽ được đăng ở chế độ cộng đồng, cho nên bạn sẽ không thể chỉnh sửa sau khi đăng, có thể đăng ký thành viên trên BanhoiTuidap.com khi bạn muốn theo dõi câu hỏi này hoặc chủ đề liên quan.
Bạn đang thắc mắc? Ghi câu hỏi của bạn và đăng ở chế độ cộng đồng (?)
Bạn đang thắc mắc? Hỏi cộng đồng (?)