aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAryadev Chavali <aryadev@aryadevchavali.com>2021-11-22 05:53:07 +0000
committerAryadev Chavali <aryadev@aryadevchavali.com>2021-11-22 05:53:07 +0000
commitf4b08ddada8ff3865056138e900ebe966d870961 (patch)
treee786e6d9f0bcfc666ac9662582c9ffc1813f64ff
parent1537bb705bc7952fe8a0c94cacc9c434cba8d23d (diff)
downloadalgorithms-f4b08ddada8ff3865056138e900ebe966d870961.tar.gz
algorithms-f4b08ddada8ff3865056138e900ebe966d870961.tar.bz2
algorithms-f4b08ddada8ff3865056138e900ebe966d870961.zip
(list)+map function
void return, just maps f onto every value in the linked list till nullity.
-rw-r--r--list.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/list.cpp b/list.cpp
index 83e7068..df8cc13 100644
--- a/list.cpp
+++ b/list.cpp
@@ -54,6 +54,15 @@ List<T> *reverse(List<T> *lst, List<T> *prev = nullptr)
return reverse(next, lst);
}
+template <typename T, typename U>
+void map(List<T> *lst, U (*f)(T))
+{
+ if (!lst)
+ return;
+ lst->value = f(lst->value);
+ map(lst->next, f);
+}
+
template <typename T>
std::ostream& operator<<(std::ostream& ostream, const List<T> *lst)
{