std::sort(x, x + n,
[](float a, float b)
{
return (std::abs(a) < std::abs(b));
}
);
- 함수포인터와 같이 사용할 수 있다.
vector<int> numbers(1000);
generate(numbers.begin(), numbers.end(), rand);
auto tests = [](float a, float b) { return (std::abs(a) < std::abs(b)); };
sort(numbers.begin(), numbers.end(), tests);
sort(numbers.begin(), numbers.end(), tests);
bool result = tests(2.4, 21.2);
- 이름이 있는 람다를 만들어서 사용할 수 있다.
[](float a, float b)->bool { return (std::abs(a) < std::abs(b)); }
- 리턴형을 명시할 수 있다. ->bool 부분
float x = 0;
auto test = [&x](float a) { x = a; };
test(2);
cout << x;
- &x를 사용하여 x의 값을 람다내에서 바꿀 수 있다.
auto test = [&](float a) { x = a; };
- 안에 들어오는 변수들을 참조에 의해 접근시킬 수 있다.
도움사이트 : https://docs.microsoft.com/ko-kr/cpp/cpp/lambda-expressions-in-cpp?view=msvc-160
'C++ > Basic' 카테고리의 다른 글
[C++] new와 malloc의 차이 (0) | 2021.09.15 |
---|---|
[C++] 가변인자 템플릿 (0) | 2021.08.25 |
[C++] fstream으로 입력 출력 (0) | 2021.08.19 |
[C++] cin, get, getline (0) | 2021.08.17 |
[C++] cin의 false/true (0) | 2021.08.13 |