람다 표현식

보물창고·2022년 8월 11일
0

c++ basic 코드누리

목록 보기
16/50

개념

: 블록문 내부에서 "이름이 없는 함수를 만들어서 사용"하는 것을 말함.

  • c++11 기능

사용법

1) 클로저라고 부르는 [] 의 의미 : 앞으로 람다식에 대한 정의를 하겠다!
: "함수 반환타입과 이름을 제거" 하고 "[]" 로 표기함.
- [] 안에 람다 함수 내부에서 사용할 외부의 변수를 작성함.
-> 중급에서 자세히 설명되어 있음.

2) 반환 타입 필요 없음!
3) 함수의 이름 필요 없음!

4) 함수 호출하는 것처럼, 호출도 해야함!

예시

void foo(int a) {  cout << "foo " << endl; }

int main()
{
	foo(1);
    
    [](int a) {  cout << "lamda" << a << endl; } ( 10 );
}

capture 하는 방법.

  • 참조, 값으로 하는 방법이 다름

problem

-> sort 함수를 사용하면서 3번째 인자만 변경하자.

가) vector에 무작위로 들어있는 원소의 값을 compare 함수를 통해
정렬 하라. v{22,-1,15,16,-9,84,101}

나) 람다 표현식을 통해 내림차순으로 정렬하라.

다) 오름 차순으로 정렬해볼래?

언제 활용할까?

  • 함수를 인자로 넘길때 : 람다로 대체하자.
    : 함수내에서 다른 함수가 필요할 때, 함수를 만들고 함수명을 인자로 전달했는데,
    차라리 람다 자체를 인자로 작성함으로써 함수를 만들 필요가 없어짐.
profile
🔥🔥🔥

0개의 댓글