[Basic C++] #46_람다 표현식과 STL 알고리즘
STL 알고리즘 중 "람다 표현식"에 대해 알아보겠습니다.
"전문가를 위한 C"의 17 항목, "STL 알고리즘 마스터하기"에 해당하는 내용입니다.
람다 표현식의 활용
본문에 들어가기 앞서 아래 링크를 통해 "람다 표현식"의 활용을 먼저 체크하시기 바랍니다.
count_if(), 람다 표현식
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
vector<int> v{ 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int value = 4;
// count_if() : Predicate과 합치하는 항목의 개수를 반환합니다.
int cnt = count_if(cbegin(v), cend(v), [value](int i) { return i > value; });
cout << "Greater than " << value << " is " << cnt << endl;
}
* 결과 화면
"count_if()" 메서드는 STL이 제공하는 알고리즘으로 세 번째 인자로 주어지는 Predicate에 일치하는 항목의 개수를 반환합니다.
위 코드 예제는 Predicate으로 람다 표현식을 사용하고 있습니다!
generate(), 람다 표현식
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
vector<int> v(10);
int val = 1;
generate(begin(v), end(v), [&val] {val *= 2; return val; });
for (const auto &val : v)
cout << val << " ";
}
* 결과 화면
"genearte()" 메서드는 주어진 구간안에 존재하는 항목들을 모두 세 번째 인자로 주어진 함수가 반환하는 값으로 교체합니다.
이 코드 예제는 람다 표현식을 제네릭 알고리즘에서 활용하는 예제입니다!
'언어 > Basic C++' 카테고리의 다른 글
[Basic C++] #48_함수 객체 어댑터, 바인더, not1(), not2(), mem_fn() (0) | 2022.07.09 |
---|---|
[Basic C++] #47_함수 객체 (0) | 2022.07.08 |
[Basic C++] #45_람다 표현식 활용, 제네릭 람다 표현식, 람다 캡처 표현식, 리턴 타입으로서 람다 표현식 (0) | 2022.07.06 |
[Basic C++] #44_람다 표현식, 기본 (0) | 2022.07.05 |
[Basic C++] #43_STL 알고리즘, find, find_if (0) | 2022.07.05 |