본문 바로가기

C++

[C++] 람다 표현식


안녕하세요! 오늘은 C++에서 매우 유용하면서도 간결한 코드 작성을 가능하게 하는 람다 표현식에 대해 알아보고자 합니다. 람다는 함수 객체를 간결하게 표현할 수 있는 기능으로, 모던 C++의 중요한 특징 중 하나입니다. 이번 글에서는 람다 표현식의 기본적인 구문부터 실제 활용 사례까지 살펴보겠습니다.


1. 람다 표현식의 기본 구문

  • 람다 표현식은 보통 함수를 정의하는 데 사용됩니다. 다음은 람다 표현식의 기본적인 구문입니다.
[capture list](parameters) -> return_type {
    // 함수 본문
}

- capture list: 람다가 사용할 외부 변수들을 캡처하는 목록입니다.

- parameters: 람다 함수의 매개변수입니다.

- return_type: 반환 형식입니다. 생략 가능하며, 컴파일러가 반환 형식을 추론할 수 있습니다.

- {}: 람다 함수의 본문을 감싸는 중괄호입니다.


2. 람다 표현식의 활용

  • 다음은 간단한 예시입니다. 람다를 사용하여 벡터의 요소들을 출력하는 함수를 작성해 보겠습니다.
#include <iostream>
#include <vector>

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

    // 람다를 사용하여 벡터의 요소들을 출력
    for_each(numbers.begin(), numbers.end(), [](int num) {
        std::cout << num << " ";
    });
    std::cout << std::endl;

    return 0;
}

이 예제에서는 람다를 for_each 알고리즘과 함께 사용하여 벡터의 요소를 출력합니다.

 


3. 람다의 캡처 기능

  • 람다는 외부 변수를 캡처하여 사용할 수 있습니다. 
int main() {
    int a = 10;
    int b = 20;

    // a와 b를 캡처하여 더하는 람다
    auto add = [a, b]() {
        return a + b;
    };

    std::cout << "a + b = " << add() << std::endl;

    return 0;
}

이 예제에서는 람다가 'a'와 'b'를 캡처하여 두 변수를 더하는 함수로 사용됩니다.


4. 람다의 반환 값

  • 람다 함수의 반환 형식은 명시적으로 지정할 수도 있고, 컴파일러가 자동으로 추론할 수도 있습니다.

 

 

람다 표현식은 C++에서 코드 작성을 더욱 간결하고 가독성 있게 만들어주는 강력한 도구입니다. 이를 활용하여 코드를 작성할 때, 람다의 간결성과 유연성을 적극적으로 활용해보시기 바랍니다. 추가적인 질문이나 토론은 언제든 환영합니다. 감사합니다!