(General)~forgot to format my files
Need to remember to format before each commit
This commit is contained in:
25
list.cpp
25
list.cpp
@@ -4,8 +4,8 @@
|
||||
*/
|
||||
|
||||
#include <cstdio>
|
||||
#include <iostream>
|
||||
#include <cstdlib>
|
||||
#include <iostream>
|
||||
|
||||
template <typename T>
|
||||
struct List
|
||||
@@ -64,7 +64,7 @@ void map(List<T> *lst, U (*f)(T))
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
T reduce(List<T> *lst, T (*reducer) (T, T), T init = 0)
|
||||
T reduce(List<T> *lst, T (*reducer)(T, T), T init = 0)
|
||||
{
|
||||
if (!lst)
|
||||
return init;
|
||||
@@ -86,7 +86,7 @@ List<T> *filter(List<T> *lst, bool (*f)(T), List<T> *new_lst = nullptr)
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
std::ostream& operator<<(std::ostream& ostream, const List<T> *lst)
|
||||
std::ostream &operator<<(std::ostream &ostream, const List<T> *lst)
|
||||
{
|
||||
if (!lst)
|
||||
return ostream;
|
||||
@@ -107,15 +107,26 @@ int main(void)
|
||||
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; });
|
||||
map<int, int>(lst = reverse(lst), [](int x) {
|
||||
return x * 2;
|
||||
});
|
||||
std::cout << lst << std::endl;
|
||||
puts("Reverse map...");
|
||||
map<int, int>(lst, [](int x){ return x / 2; });
|
||||
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::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; });
|
||||
auto evens = filter<int>(lst, [](int a) {
|
||||
return a % 2 == 0;
|
||||
});
|
||||
std::cout << evens << std::endl;
|
||||
delete lst;
|
||||
delete evens;
|
||||
|
||||
Reference in New Issue
Block a user