프로그래밍/C++
람다
StingW
2017. 1. 11. 12:56
ex ) 예제 코드1
void main() { int w = 10, q = 20; 방법 1: bool Compare = [](int a, int b)-> bool { return a % 10 > b % 10; }(w,q); int tt = [](int c, int q)->int { return c+q; }(w, q); 방법 2: 함수포인터로 만들어서 사용한다. function<bool> func = [](int a, int b)-> bool { return a % 10 > b % 10; }; auto func = [](int a, int b)-> bool { return a % 10 > b % 10; }; sort(numbers.begin(), numbers.end(), func); }
[캡처] : 람다를 정의한 함수 외부에 있는 변수를 사용하고 싶을경우 쓰이는곳
- [] 아무것도 캡처를 안한다.
- [=] 모든 변수를 캡처한다
- [&] 모든변수를 참조형으로 캡처
- [&변수명] 특정 변수만 참조형으로 함수 캡처,
- [변수명1, 변수명2] 특정 변수만 사용하도록 캡처한다.
(매개변수) : 함수의 배개변수 같은 용도
-> bool : 람다 함수내부에서의 리턴값