람다함수란?
C++의 람다 함수는 간단한 익명 함수를 정의할 수 있는 방법으로, 코드의 간결성을 높이고 일회성 기능을 구현할 때 유용합니다.
쉽게 말해서 즉석에서 간단하게 만드는 함수를 말합니다. 따로 이름을 붙이지 않고 쓸수 있게 해주는 간단한 도구입니다.
기본구조
[capture](parameters) -> return_type {
// 함수 본체
}
- capture: 외부 변수를 캡처하여 함수 내부에서 사용
- parameters: 함수의 매개변수 목록
- return_type: 반환 타입 (생략 가능, 컴파일러가 추론)
- function body: 람다 함수의 실행 코드
기본예제
#include <iostream>
using namespace std;
int main() {
auto doubleNumber = [](int x) {
return x * 2; // x를 두 배로
};
cout << doubleNumber(5); // 출력: 10
return 0;
}
외부변수캡쳐
외부변수를 값으로 캡처하거나 참조로 캡처할 수 있습니다.
int x = 10;
auto addValue = [x]() { // 값으로 캡처
return x + 5;
};
auto addReference = [&x]() { // 참조로 캡처
return x + 5;
};
x = 20; // x 값 변경
std::cout << "addValue: " << addValue() << std::endl; // 15
std::cout << "addReference: " << addReference() << std::endl; // 25
//즉 참조값으로 가져온건 변경값을 가져왔지만 복사값으로 가져온건 첫줄 그대로를 베껴왔기때문에 값이 다르다
- 값으로 캡처: 캡처 시점의 값을 복사
- 참조로 캡처: 캡처한 변수를 참조
STL과 같이 활용하기
std::vector<int> numbers = {5, 2, 8, 1, 4};
std::sort(numbers.begin(), numbers.end(), [](int a, int b) {
return a < b; // 오름차순 정렬
});
for (int num : numbers) {
std::cout << num << " "; // 1 2 4 5 8
}
'언리얼(Unreal) > 엔진' 카테고리의 다른 글
24.12.12 언리얼 unreal engine 의 기초 지식과 용어 (0) | 2024.12.12 |
---|---|
24.12.11 언리얼 언리얼엔진의 기초 (0) | 2024.12.11 |
24.12.09 언리얼(STL의 자료구조과 알고리즘) (1) | 2024.12.09 |
24.12.08 언리얼( STL의 기본 개념과 사용법) (0) | 2024.12.08 |
24.12.07 언리얼(스마트 포인터에 대하여) (0) | 2024.12.07 |