From 403b2889a270011af45dadf9f527e7a6037f3c28 Mon Sep 17 00:00:00 2001 From: Bert Peters Date: Mon, 2 Dec 2019 19:40:18 +0100 Subject: [PATCH] Better use of move and copy constructors. --- 2019/src/day02.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/2019/src/day02.cpp b/2019/src/day02.cpp index c57c887..8d9cce9 100644 --- a/2019/src/day02.cpp +++ b/2019/src/day02.cpp @@ -14,7 +14,7 @@ static std::vector read_program(std::istream &input) { return program; } -static int run_program(std::vector &program) { +static int run_program(std::vector program) { for (int ip = 0; ip < program.size(); ip += 4) { switch (program[ip]) { case 1: @@ -42,18 +42,17 @@ void aoc2019::day02_part1(std::istream &input, std::ostream &output) { auto program = read_program(input); program[1] = 12; program[2] = 2; - output << run_program(program) << std::endl; + output << run_program(std::move(program)) << std::endl; } void aoc2019::day02_part2(std::istream &input, std::ostream &output) { - const auto program = read_program(input); + auto program = read_program(input); for (int noun = 0; noun < 100; ++noun) { for (int verb = 0; verb < 100; ++verb) { - auto program_copy = program; - program_copy[1] = noun; - program_copy[2] = verb; - if (run_program(program_copy) == 19690720) { + program[1] = noun; + program[2] = verb; + if (run_program(program) == 19690720) { output << 100 * noun + verb << std::endl; return; }