[C++] 람다, Lambda 표현식

E woo·2022년 7월 3일
0

개발 일기

목록 보기
2/15

람다

람다는 간단하거나 일회성에 가까운 함수를 구현하는 경우에 자주 사용되는 익명 함수이다.
이름 없는 함수이기 때문에 람다의 구현은 가볍고 간단하게 하는 것에 중점을 두는 편이다.

기본 형식은

[ ] (int a, int b) { return a > b; };

다음과 같이 대괄호 [] 로 시작하고 괄호 안에 변수를 통해 람다 외부에서 정의된 변수나 상수를 람다 내부에서 사용할 수 있다.

소괄화 () 는 매개 변수를, 중괄화 {} 는 함수의 동작을 위한 코드를 쓰게 된다.

구현 예시

다음은 백준 문제 1427번 소트인사이드을 해결한 코드이다.
이 문제는 입력받은 숫자를 내림차순으로 정리하는 문제인데

sort 함수는 기본으로 오름차순으로 정렬을 하기 때문에 문제 해결을 위한 내림차순을 위해
세 번째 인자에 함수를 대입하여 사용자가 정의한 함수로 정렬을 할 수 있다.

이때 내림차순을 위한 람다 함수를 정의하여 구현하였다.

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main()
{
    cin.tie(NULL);
	ios::sync_with_stdio(false);

    string str;
    cin >> str;

    sort(str.begin(),str.end(),
    [](int a, int b)
    {
        return a > b;
    }
    );
    cout << str;
    return 0;
}
profile
뒘벼

0개의 댓글