오늘은 저번 글에 이어서 람다표현식의 반환형을 지정하는 방법과 STL 알고리즘에서 람다 표현식이 어떻게 활용될수 있는지 알아보고자 한다
오늘 알아보기
1. 반환형 지정
2. STL 알고리즘과 람다 표현식의 활용
람다 표현식은 반환형을 명시적으로 지정할 수 있다
반환형을 지정하지 않아도 컴파일러가 자동으로 반환형을 추론해주지만 명시적인 반환형 지정이 꼭 필요한 경우도 있을 것이다 (예를들어 반환하는 값이 조건에 따라 타입이 달라지는 경우 혹은 복잡한 타입을 가지게 되면 컴파일러가 올바른 추론을 하지 못하거나 오류가 발생할수 있다)
#include <iostream>
int main() {
// 반환형을 명시한 람다
auto multiply = [](int a, int b) -> int {
return a * b;
};
std::cout << "2 * 3 = " << multiply(2, 3) << std::endl;
return 0;
}
- int: 함수의 반환형을 명시적으로 지정하는 구문이다 이 경우 multiply 람다는 두 정수의 곱을 반환한다
출력은 다음과 같다
2 * 3 = 6
람다 표현식은 STL 알고리즘에서 매우 유용하게 사용된다
다음의 예시를 들면 std::sort에서 커스텀 비교 함수를 람다로 쉽게 구현할 수 있는 것을 볼수 있다
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> numbers = {5, 2, 9, 1, 5, 6};
// 람다 표현식을 사용한 정렬
std::sort(numbers.begin(), numbers.end(), [](int a, int b) {
return a < b; // 오름차순 정렬
});
// 결과 출력
for (int num : numbers) {
std::cout << num << " ";
}
return 0;
}
std::sort: 정렬 함수에 람다 표현식을 전달하여 커스텀 비교 함수를 사용한다
출력은 다음과 같다
1 2 5 5 6 9
오늘은 짧지만 저번에 완성하지 못했던 C++의 람다 표현식에 대해 마저 알아보았다 람다 표현식을 적절하게 사용하면 컴파일러가 지원도 해주는등 여러가지로 편리하게 사용할수 있을것 같다
특별편: 언리얼 엔진에서 C++로 캐릭터 AI 만들기 (2) | 2024.10.19 |
---|---|
C++ 예외처리 (2) | 2024.09.28 |
C++ 람다 표현식 사용하기 (1) | 2024.09.01 |
언리얼 엔진과 C++의 연산자 오버로딩 (0) | 2024.08.17 |
C++이란 어떤 언어일까? (0) | 2024.08.11 |