개발 Study

#41. 람다식의 사용

HYuk 2021. 11. 1. 18:53
728x90

람다식은 위와 같이 4개의 부분으로 되어있다.

 

#개시자(introducer)

-> 해당 부분에 외부 변수를 넣는다면, 람다 함수가 이를 캡쳐하여 이 변수를 람다 내부에서 이용 할 수 있게 한다.

보통 [&] 레퍼런스 형태로 가져오거나 [=] 값을 가져오는 형태로 쓴다.

 

#인자(parameters)

-> 이 부분은 람다가 실행 될 때 받을 인자들을 써넣는다.

일반적으로 함수에서 매개변수를 지정하듯이 (int _i) 와 같이 사용하면 된다.

 

#반환 타입(return type)

-> 그 다음은 ->후에 반환타입을 써주면 된다.

위 그림에서는 int를 return 한다고 보면 된다.

 

#함수의 몸통(statement)

-> 람다 내부에서 실행 할 내용을 적어주면 된다.

 

이건은 조건자를 쓰는 for_each문 같은 경우 아주 편해진다.

예를 들어

vector<int> m_vecNum;

int iTotal = 0;



m_vecNum.emplaceback(1);

m_vecNum.emplaceback(2);

m_vecNum.emplaceback(3);

m_vecNum.emplaceback(4);



for_each(m_vecNum.begin(),m_vecNum.end(),[&](int i){iTotal += i;} );

라고 했을 때, 

iTotal의 값은 10이 나오게 된다.

728x90

'개발 Study' 카테고리의 다른 글

#43. map, set에 struct나 class 넣기  (0) 2022.10.27
#42. 스마트 포인터  (0) 2021.11.12
#40. Map  (0) 2021.05.26
#39. List  (0) 2021.05.24
#38. 조건자  (0) 2021.05.23