Лямбда в развитии (C++11, C++14, C++17)
В этом посте содержится краткое описание того, что касалось лямбда-выражений в при их появлении в С++11 и как они развивались в последующих стандартах. Лямбда-выражения - это упрощенная нотация для определения и использования анонимных объектов-функций вместо определения именованного класса с оператором operator(), последующим созданием объекта этого класса и вызовом его. Основы: Минимальная лямбда содержит 3 части: [] - захват, () - параметры, {} - тело. Последующая лямбда увеличивает на 1 все элементы вектора. #include <algorithm> #include <iostream> #include <vector> int main () { std :: vector < int > v = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 }; auto my_lambda = []( int x ) { return x + 1 ; }; std :: transform ( v . begin (), v . end (), v . begin (), my_lambda ); for ( auto & value : v ) { std :: cout << value << std :: endl ; } return 0 ; } По пов...