본문 바로가기

C,C++/공부 낙서

공부하면서 빠트린 것들 끄적끄적 - 람다

사용 목적 

한 번만 호출하고 싶은 함수라거나 사용 빈도가 낮은 함수가 필요할 때 람다 함수는 좋은 방법입니다.

보통 함수는 호출시 정의부분으로 가서 읽고 다시 호출된 시점으로 돌아옵니다.

이때 아주 조금의 연산량이 필요하겠지만 

자주 호출하는 함수가 아니라면 굳이 이렇게 사용할 필요가 없습니다. 

따라서 람다 함수를 사용하게 되면 쭉 읽어 내려가기만 하면 되므로 성능상의 이점을 얻을 수 있습니다.

 

 

 

사용 방법

#include<iostream>
#include<string>
 
int main(void) {
 
 	int test1 = 5;
    //람다 함수
    [](int a, int b)
    {
        std::cout << "lambda call : " << a + b << std::endl;
    }(30, 40);
 
    return 0;
}

람다 기본 원형 : [] () {}

[ ] : 캡쳐라고 하며 사용할 변수를 넣기도 함

[=] : 모든 변수 복사 사용 (call by value)

[&] : 모든 변수 참조 사용 (call by reference)

[test1] : test1이라는 변수를 복사

[&test1] : test1이라는 변수를 참조

 

( ) : 매개변수 넣는 부분

(int a, int b) 이런 느낌으로.

 

{ } : 정의 부분

[test1] (int a, int b)

{

        test1 = 50 + a + b;

}