1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | #include <iostream> #include <algorithm> #include <vector> #include <numeric> int main() { // transform in action std::vector<int> v{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; std::transform(v.begin(), v.end(), v.begin(), [](int n) {return n + (n * 2); } ); std::for_each(v.begin(), v.end(), [](const int&x) {std::cout << x << std::endl; }); // remove_if in action std::remove_if(v.begin(), v.end(), [](int n) {return n % 2 != 0; } ); std::for_each(v.begin(), v.end(), [](const int&x) {std::cout << x << std::endl; }); // copy_if in action std::vector<int> v1; std::copy_if(v.begin(), v.end(), std::back_inserter(v1), [](int n) {return n % 2 != 0; } ); std::for_each(v1.begin(), v1.end(), [](const int&y) {std::cout << y << std::endl; }); //accumulate in action std::vector<int> v2 = { 2, 9, -4, 2 }; auto sum = std::accumulate(begin(v2), end(v2), 0); std::for_each(v2.begin(), v2.end(), [](const int&z) {std::cout << z << std::endl; }); } | cs |
'Functional Programming' 카테고리의 다른 글
qt에서 꼬리재귀 최적화 활성화 명령줄 (0) | 2019.03.23 |
---|---|
T아카데미 함수형 프로그래밍 설명 유튜브 (0) | 2019.03.23 |
bind and placeHolder 예제 (0) | 2019.03.23 |
std Function 사용법 예제 (0) | 2019.03.23 |
bind 사용법 예제 (0) | 2019.03.23 |