diff options
| author | Thomas Schmucker <ts@its1.de> | 2024-12-03 21:25:26 +0100 |
|---|---|---|
| committer | Thomas Schmucker <ts@its1.de> | 2024-12-03 21:25:26 +0100 |
| commit | 1e1e3664dba5fffd28f55df19fde648236498c2d (patch) | |
| tree | e5b645cffb8fa84257af338d6b6d6bfd96196868 | |
| parent | 6bdb9bc94c54b9ae37d7a358057d84c893428e0b (diff) | |
| download | advent-of-code-1e1e3664dba5fffd28f55df19fde648236498c2d.tar.gz advent-of-code-1e1e3664dba5fffd28f55df19fde648236498c2d.tar.bz2 advent-of-code-1e1e3664dba5fffd28f55df19fde648236498c2d.zip | |
istreambuf_iterator
| -rw-r--r-- | 2024/src/day03.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/2024/src/day03.cpp b/2024/src/day03.cpp index bfbd781..774404d 100644 --- a/2024/src/day03.cpp +++ b/2024/src/day03.cpp | |||
| @@ -9,7 +9,7 @@ string | |||
| 9 | read_file(string_view filename) | 9 | read_file(string_view filename) |
| 10 | { | 10 | { |
| 11 | fstream input{ filename }; | 11 | fstream input{ filename }; |
| 12 | return { istream_iterator<char>{ input }, {} }; | 12 | return { istreambuf_iterator<char>{ input }, {} }; |
| 13 | } | 13 | } |
| 14 | 14 | ||
| 15 | void | 15 | void |
| @@ -29,16 +29,16 @@ part2(const string& data) | |||
| 29 | { | 29 | { |
| 30 | static const regex pattern{ R"(do\(\)|don't\(\)|mul\((\d{1,3}),(\d{1,3})\))" }; | 30 | static const regex pattern{ R"(do\(\)|don't\(\)|mul\((\d{1,3}),(\d{1,3})\))" }; |
| 31 | 31 | ||
| 32 | long sum = 0; | 32 | long sum = 0; |
| 33 | bool state = true; | 33 | bool enabled = true; |
| 34 | for ( auto it = sregex_iterator{ data.begin(), data.end(), pattern }; it != sregex_iterator{}; ++it ) { | 34 | for ( auto it = sregex_iterator{ data.begin(), data.end(), pattern }; it != sregex_iterator{}; ++it ) { |
| 35 | if ( it->str() == "do()" ) { | 35 | if ( it->str() == "do()" ) { |
| 36 | state = true; | 36 | enabled = true; |
| 37 | } | 37 | } |
| 38 | else if ( it->str() == "don't()" ) { | 38 | else if ( it->str() == "don't()" ) { |
| 39 | state = false; | 39 | enabled = false; |
| 40 | } | 40 | } |
| 41 | else if ( state ) { | 41 | else if ( enabled ) { |
| 42 | sum += stol((*it)[1]) * stol((*it)[2]); | 42 | sum += stol((*it)[1]) * stol((*it)[2]); |
| 43 | } | 43 | } |
| 44 | } | 44 | } |
