람다 식은 호출되었거나 인수로서 함수에 전달된 위치에서 바로 익명 함수 개체를 정의하는 방법으로 일반적으로 알고리즘이나 비동기 메서드에 전달되는 코드를 캡슐화하는데 사용된다.
(https://msdn.microsoft.com/ko-kr/library/dd293608.aspx)
구성
[캡처 절] (매개변수 목록) mutable -> 반환타입 { 함수 정의 }
캡쳐 절
람다 표현식의 바깥 범위에서 캡처할 변수 목록
[=] -> 모든 자동 변수를 값으로 캡처해서 접근가능, 이용은 가능 변경이 불가
[&] -> 바깥 범위의 모든 변수를 참조로 접근가능, 본문에서 코드로 변경이 가능하기
때문에 mutable 키워드가 필요없다.
[변수] -> 바깥에서 원하는 변수만 캡쳐
[&변수] -> 바깥에서 원하는 변수를 참조 캡쳐
[=, &변수] -> 변수만 참조 캡쳐, 나머지는 값으로 캡쳐
[&, 변수] -> 변수만 값으로 캡쳐, 나머지는 참조 캡쳐
매개변수 목록 : 람다가 호출될 때 람다에 표현식에서 넘겨받을 매개변수 목록
mutable : 값으로 캡처한 바깥 변수의 복제본을 수정 가능으로 표시하는 키워드, 생략가능
반환타입 : 반환되는 값이 없으면 void로 지정된다, 생략가능
'공부 > C++(STL)' 카테고리의 다른 글
vector 컨테이너 (0) | 2018.03.29 |
---|---|
array 컨테이너 (0) | 2018.03.23 |
스마트 포인터 (0) | 2018.02.23 |
반복자 연산 (0) | 2018.01.26 |
accumulate 함수 (0) | 2018.01.24 |