[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++ 프로그래밍 지식을 습득하고자 한다면 람다 표현식을 활용해보는 것을 권장합니다.