본문 바로가기
대외활동/시스템프로그래밍

람다식

by hoshi03 2024. 7. 30.

• 람다식
f(x + y)를 (x + y) -> x + y 형태로 표현한다

 

- x+y를 출력하는 람다 메서드에 2+3한 값을 넣어서 출력

[](int x, int y) {cout << x + y; }(2,3);

 

-람다 메서드를 auto 타입으로 변수로 만들어두고 재활용해서 사용하는 코드, 이 패턴을 잘 알아두자

	auto sum = [](int x, int y) {cout << x + y << '\n'; };
	sum(1, 2);
	sum(5, 15);

 

-람다 메서드에 외부 변수 값을 넣어서 계산하는 코드

	double pi = 3.14;
	auto calc = [pi](int r) -> double { return pi * r * r; };

 

- 참조 형으로 넘겨준 인자에 값을 람다식 안에서 갱신하는 코드

	double pi = 3.14, res = 0;
	auto calc = [&pi, &res](int r) -> double { return res = pi * r * r; };

	cout << calc(3) << '\n';
	cout << res << '\n';

 

- 참조 형으로 넘겨준 값에 계산한 식의 값을 저장하는 코드

	vector<int> tmp = { 1, 2, 3, 4, 5 };
	int res = 0;
	for_each(tmp.begin(), tmp.end(), [&res](int a) {cout << a << " "; cout << "\n"; res += a; });
	cout << res << '\n';