From 5c46738f7efa082010c44e918f2bf47627ccddca Mon Sep 17 00:00:00 2001 From: Thomas Schmucker Date: Fri, 15 Dec 2023 14:18:29 +0100 Subject: cleanup code --- src/day15.cpp | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) (limited to 'src/day15.cpp') diff --git a/src/day15.cpp b/src/day15.cpp index 607f5f2..3c8163f 100644 --- a/src/day15.cpp +++ b/src/day15.cpp @@ -2,6 +2,7 @@ #include #include #include +#include #include #include #include @@ -14,11 +15,10 @@ read_file(string_view filename) return { istreambuf_iterator{ input }, istreambuf_iterator{} }; } -inline string& -rtrim(string& s, const char* t = " \t\n\r\f\v") +void +rtrim(string& str) { - s.erase(s.find_last_not_of(t) + 1); - return s; + str.erase(find_if(str.rbegin(), str.rend(), [](auto chr) { return !isspace(chr); }).base(), str.end()); } vector @@ -28,7 +28,8 @@ split(const string& line, char sep) stringstream input{ line }; for ( string part; getline(input, part, sep); ) { - parts.emplace_back(rtrim(part)); + rtrim(part); + parts.emplace_back(part); } return parts; @@ -48,13 +49,8 @@ calculate_hash(string_view str) void part1() { - const auto line = read_file("data/day15.txt"); - const auto parts = split(line, ','); - unsigned long value = 0; - for ( const auto& part: parts ) { - value += calculate_hash(part); - } - cout << value << endl; + const auto parts = split(read_file("data/day15.txt"), ','); + cout << accumulate(parts.begin(), parts.end(), 0UL, [](auto init, const auto& str) { return init + calculate_hash(str); }) << endl; } void -- cgit v1.3