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 |