lambda expression (람다 표현식)
lambda expression
-
C++11 에서 새로 지원하는 이름 없는 함수 객체
-
C++ 함수 객체를 간단하게 생성할 수 있다.
-
[captures] (params) -> ret { body }
- captures: 람다 표현식 외부 변수 접근 방법
- [=] : 복사
- [&] : 참조
- [] : 비운거
- params: 인자가 없으면 0 생략 가능
- ret: 반환형이 명확할 경우 ret 생략가능
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
suing namespace std;
int main(void)
{
[] {}; // 인자가 없고 return type도 명확(void) 아무것도 리턴하지 않고 아무것도 안함
// void f() {} 의 개념과 비슷하다.
[] {} (); // 람다함수를 호출하려면 ()
[] {} -> void {} (); // 위와 동일한 동작
[] (double a) { cout << a * a << endl; } (3.0); // 3.0 이 a로 전달되는 것으로 이해
return 0
}
- 람다 표현식 함수는 보통 함수 객체의 포인터를 받거나 함수 객체를 받는 함수에서 주로 사용한다.
함수 객체 : () 연산자를 오보로딩하여 만든 클래스
...
int main(void)
{
...
sort(v.begin(), v.end(), [](const Person& p1, const Person& p2){
return p1.name < p2.name;});
}
- 간단한 함수에 대해서는 람다 표현식으로 쓰는게 가독성이 좋을 수 있다.
Author And Source
이 문제에 관하여(lambda expression (람다 표현식)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@lottocomeon/lambda-expression-람다-표현식
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
C++11 에서 새로 지원하는 이름 없는 함수 객체
C++ 함수 객체를 간단하게 생성할 수 있다.
[captures] (params) -> ret { body }
- captures: 람다 표현식 외부 변수 접근 방법
- [=] : 복사
- [&] : 참조
- [] : 비운거
- params: 인자가 없으면 0 생략 가능
- ret: 반환형이 명확할 경우 ret 생략가능
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
suing namespace std;
int main(void)
{
[] {}; // 인자가 없고 return type도 명확(void) 아무것도 리턴하지 않고 아무것도 안함
// void f() {} 의 개념과 비슷하다.
[] {} (); // 람다함수를 호출하려면 ()
[] {} -> void {} (); // 위와 동일한 동작
[] (double a) { cout << a * a << endl; } (3.0); // 3.0 이 a로 전달되는 것으로 이해
return 0
}
함수 객체 : () 연산자를 오보로딩하여 만든 클래스
...
int main(void)
{
...
sort(v.begin(), v.end(), [](const Person& p1, const Person& p2){
return p1.name < p2.name;});
}
Author And Source
이 문제에 관하여(lambda expression (람다 표현식)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@lottocomeon/lambda-expression-람다-표현식저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)