Chào mừng bạn đến với Selfomy Hỏi Đáp, hãy Hỏi bài tập hoặc Tham gia ngay
0 phiếu
196 lượt xem
Khang1000 trong Tin học lớp 10 bởi Phó giáo sư (31.4k điểm)

1 Câu trả lời

0 phiếu
monmon70023220 bởi Cử nhân (3.0k điểm)
### Khái niệm về hàm ẩn danh (Lambda Function) trong C++

**Hàm ẩn danh** (hay còn gọi là **hàm lambda**) trong C++ là một hàm không có tên, cho phép định nghĩa các hàm ngay tại chỗ mà không cần phải khai báo một hàm riêng biệt. Hàm lambda thường được sử dụng để thực hiện các tác vụ ngắn gọn và có thể được truyền như một đối số cho các hàm khác.

**Cú pháp cơ bản**:
```cpp
[capture](parameters) -> return_type {
    // Thân hàm
}
```

- **capture**: Xác định cách mà biến từ phạm vi bên ngoài sẽ được sử dụng trong hàm lambda.
- **parameters**: Danh sách tham số (giống như trong hàm thông thường).
- **return_type**: Kiểu trả về (có thể bỏ qua nếu có thể suy diễn).
- **thân hàm**: Các câu lệnh thực hiện tác vụ của hàm.

### Ví dụ về hàm ẩn danh

```cpp
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main() {
    vector<int> numbers = {1, 2, 3, 4, 5};

    // Sử dụng hàm lambda để in các số trong vector
    for_each(numbers.begin(), numbers.end(), [](int n) {
        cout << n << " ";
    });

    cout << endl;

    // Sử dụng hàm lambda để tìm số lớn hơn 3
    auto it = find_if(numbers.begin(), numbers.end(), [](int n) {
        return n > 3;
    });

    if (it != numbers.end()) {
        cout << "Số lớn hơn 3 đầu tiên là: " << *it << endl;
    }

    return 0;
}
```

### Ứng dụng của hàm ẩn danh

1. **Tính ngắn gọn và dễ đọc**: Hàm lambda giúp viết mã ngắn gọn hơn, đặc biệt khi sử dụng với các thuật toán STL như `for_each`, `find_if`, `sort`, v.v.

2. **Truyền vào như đối số**: Hàm lambda có thể được truyền trực tiếp vào các hàm khác mà không cần phải định nghĩa trước, giúp tăng tính linh hoạt.

Các câu hỏi liên quan

0 phiếu
1 trả lời 286 lượt xem
0 phiếu
1 trả lời 102 lượt xem
0 phiếu
1 trả lời 263 lượt xem
0 phiếu
1 trả lời 158 lượt xem
Giải thích khái niệm bạn bè (friend) trong C++. Khi nào nên sử dụng nó và lợi ích của việc sử dụng bạn bè trong lập trình?
đã hỏi 23 tháng 10, 2024 trong Tin học lớp 10 bởi Khang1000 Phó giáo sư (31.4k điểm)
0 phiếu
1 trả lời 191 lượt xem
0 phiếu
1 trả lời 153 lượt xem
0 phiếu
1 trả lời 168 lượt xem
0 phiếu
1 trả lời 226 lượt xem
đã hỏi 31 tháng 10, 2024 trong Tin học lớp 10 bởi Khang1000 Phó giáo sư (31.4k điểm)
0 phiếu
1 trả lời 184 lượt xem
0 phiếu
1 trả lời 142 lượt xem

HOT 1 giờ qua

  1. tuyen23052014600tuyen23052014600

    20 Điểm

  2. phamngoctienpy1987844phamngoctienpy1987844

    11 Điểm

  3. manhlecong680419manhlecong680419

    5 Điểm

Phần thưởng hằng tháng
Hạng 1: 200.000 đồng
Hạng 2: 100.000 đồng
Hạng 3: 50.000 đồng
Hạng 4: 20.000 đồng
Phần thưởng bao gồm: mã giảm giá Shopee, Nhà Sách Phương Nam, thẻ cào cùng nhiều phần quà hấp dẫn khác sẽ dành cho những bạn tích cực nhất của tháng. Xem tại đây
Bảng xếp hạng cập nhật 30 phút một lần
...