diff options
Diffstat (limited to 'list.cpp')
-rw-r--r-- | list.cpp | 17 |
1 files changed, 15 insertions, 2 deletions
@@ -96,15 +96,28 @@ std::ostream& operator<<(std::ostream& ostream, const List<T> *lst) int main(void) { + puts("Create linked list with 1..10"); auto lst = append<int>(nullptr, 1); - for (int i = 2; i < 10; ++i) + for (int i = 2; i <= 10; ++i) lst = append(lst, i); + printf("Current output for list: "); std::cout << lst << std::endl; lst = reverse(lst); + printf("Reverse list: "); std::cout << lst << std::endl; + puts("Reverse list again..."); + printf("Map list with f(x) = 2x: "); map<int, int>(lst = reverse(lst), [](int x){ return x * 2; }); std::cout << lst << std::endl; - std::cout << reduce<int>(lst, [](int a, int b) { return a + b; }, 0) << std::endl; + puts("Reverse map..."); + map<int, int>(lst, [](int x){ return x / 2; }); + printf("Sum all numbers in list: "); + std::cout << reduce<int>(lst, [](int a, int b) { return a + b; }, 0) + << std::endl; + printf("Print all even numbers 1..10: "); + auto evens = filter<int>(lst, [](int a) { return a % 2 == 0; }); + std::cout << evens << std::endl; delete lst; + delete evens; return 0; } |