From 26559b4c883beec0d21cfe5e3463cb6b05a2f8ec Mon Sep 17 00:00:00 2001 From: Anton Te Date: Thu, 19 Jul 2018 00:13:15 -0700 Subject: [PATCH] Minor clean up for Forward Euler Method in C++ - use for-loop instead of generate_n and back_inserter and lambda - use C++ style of commenting to follow C++ Coding Standards section Comments --- contents/forward_euler_method/code/c++/euler.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/contents/forward_euler_method/code/c++/euler.cpp b/contents/forward_euler_method/code/c++/euler.cpp index 4af2094a6..a341655f4 100644 --- a/contents/forward_euler_method/code/c++/euler.cpp +++ b/contents/forward_euler_method/code/c++/euler.cpp @@ -14,16 +14,15 @@ using std::size_t; std::vector solve_euler(double timestep, size_t size) { std::vector result; double current = 1.0; - std::generate_n(std::back_inserter(result), size, [&] { - return std::exchange(current, current - 3.0 * current * timestep); - }); + for (size_t i = 0; i < size; ++i) { + result.push_back(current); + current -= 3.0 * current * timestep; + } return result; } -/* - check_result takes an iterator over doubles, - and returns whether any value is outside the passed threshold. -*/ +// check_result takes an iterator over doubles, +// and returns whether any value is outside the passed threshold. template bool check_result(Iter first, Iter last, double threshold, double timestep) { auto it = first;