[c++] 람다 표현식 활용

C++에서 람다 표현식은 익명 함수를 생성하는데 사용되며, 특히 함수 객체가 필요한 곳에 간편하게 사용할 수 있습니다. 람다 표현식은 다양한 상황에서 유용하게 활용될 수 있습니다. 이번 포스트에서는 C++ 람다 표현식을 어떻게 활용하는지에 대해 알아보겠습니다.

람다 표현식이란?

람다 표현식은 익명 함수를 생성하는데 사용되며, 함수를 간편하게 정의하고 호출하기 위한 방법으로 활용됩니다. 람다 표현식은 다음과 같은 형태를 가집니다.

[capture clause](parameters) -> return_type { 
    // 함수 본문 
}

이때 capture clause는 람다 표현식이 참조할 외부 변수를 지정하며, parameters는 함수에 전달될 인수를 나타내고, return_type은 함수의 반환값을 나타냅니다.

람다 표현식의 활용

범위 기반 for 루프

std::vector<int> vec = {1, 2, 3, 4, 5};
std::for_each(vec.begin(), vec.end(), [](int& n) {
    std::cout << n << " ";
});

알고리즘과 함께 사용

std::vector<int> vec = {1, 2, 3, 4, 5};
auto result = std::find_if(vec.begin(), vec.end(), [](int n) { 
    return n > 3; 
});

쓰레드와 함께 사용

std::thread t([]() {
    std::cout << "Hello from thread!" << std::endl;
});
t.join();

위의 예제에서는 람다 표현식을 범위 기반 for 루프, 알고리즘, 그리고 쓰레드와 함께 사용하는 방법을 살펴보았습니다. 람다 표현식을 이러한 다양한 상황에서 활용하여 코드 작성을 더욱 간결하고 가독성 있게 만들 수 있습니다.

람다 표현식은 C++11 이후 도입된 기능으로, 이를 효과적으로 활용하기 위해서는 C++11 이상의 표준을 따르는 컴파일러가 필요합니다.

마치며

이번 포스트에서는 C++ 람다 표현식의 활용에 대해 알아보았습니다. 람다 표현식은 다양한 상황에서 코드를 더욱 간결하고 가독성 있게 만들어줄 뿐만 아니라, 함수 객체를 별도로 정의하지 않고도 함수를 생성하고 사용할 수 있게 해줍니다. 더 많은 C++ 프로그래밍 지식을 습득하고자 한다면 람다 표현식을 활용해보는 것을 권장합니다.