Активный
- Тема Автор
- #1
Лямбда-выражения упрощают код. Разберем использование.
Базовое использование
Захват переменных
Захват по ссылке
Важные моменты:
- Используйте лямбды для краткости
- Правильно захватывайте переменные
- Избегайте излишней сложности
- Документируйте сложные лямбды
Лямбда-выражения упрощают код!
Базовое использование
Код:
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main() {
vector<int> numbers = {1, 2, 3, 4, 5};
// Лямбда для удвоения
for_each(numbers.begin(), numbers.end(),
[](int& n) { n *= 2; });
// Лямбда для вывода
for_each(numbers.begin(), numbers.end(),
[](int n) { cout << n << " "; });
return 0;
}
Захват переменных
Код:
#include <iostream>
using namespace std;
int main() {
int multiplier = 3;
auto lambda = [multiplier](int x) {
return x * multiplier;
};
cout << lambda(5) << endl; // 15
return 0;
}
Захват по ссылке
Код:
#include <iostream>
using namespace std;
int main() {
int counter = 0;
auto increment = [&counter]() {
counter++;
};
increment();
increment();
cout << counter << endl; // 2
return 0;
}
Важные моменты:
- Используйте лямбды для краткости
- Правильно захватывайте переменные
- Избегайте излишней сложности
- Документируйте сложные лямбды
Лямбда-выражения упрощают код!