C++
람다
Jagbbum
2023. 9. 21. 01:12
lambda 함수는 필요한 정보만을 사용하여 퍼포먼스를 향상하기 위해 사용한다.
C++에서의 형식은 다음과 같다.
[캡처] (매개변수) { 함수 동작 } (호출인자)
위에서 매개변수와 호출인자는 생략이 가능하다.
[] (int a, int b) { cout << a + b; } (10, 20)
위와 같으면 a에 10을 b에 20을 대입하여 30을 출력하게 된다.
캡처는 람다 내부가 아닌 외부에 정의된 변수나 상수를 람다에서 사용하기 위해 사용한다.
[]에 어떤 값을 넣냐에 따라 값을 참조하거나 복사하거나 차이가 생긴다.
[x]: 변수 x의 값 활용
[&x]: 참조 변수 x 활용
[=]: 모든 변수의 값 활용
[&]: 모든 참조 변수 활용
캡처는 댕글링 포인터 버그 발생할 가능성이 높아 유의할 필요가 있다.