From b79b2a29e81b087b6609c79fbffead0a275449bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93lafur=20Waage?= Date: Wed, 8 Sep 2021 10:21:37 +0200 Subject: [PATCH] Using std::erase for pellets possible in C++20 --- lib/Pellets.cpp | 6 +----- lib/SuperPellets.cpp | 6 +----- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/lib/Pellets.cpp b/lib/Pellets.cpp index 39de56d..566b227 100644 --- a/lib/Pellets.cpp +++ b/lib/Pellets.cpp @@ -7,11 +7,7 @@ Pellets::Pellets() : positions(initialPelletPositions()) {} bool Pellets::eatPelletAtPosition(GridPosition p) { - auto it = std::find(positions.begin(), positions.end(), p); - if (it == positions.end()) - return false; - positions.erase(it); - return true; + return std::erase(positions, p) > 0; } } // namespace pacman diff --git a/lib/SuperPellets.cpp b/lib/SuperPellets.cpp index 0e851e6..9fae338 100644 --- a/lib/SuperPellets.cpp +++ b/lib/SuperPellets.cpp @@ -7,11 +7,7 @@ SuperPellets::SuperPellets() : positions(initialSuperPelletPositions()) {} bool SuperPellets::eatPelletAtPosition(GridPosition p) { - auto it = std::find(positions.begin(), positions.end(), p); - if (it == positions.end()) - return false; - positions.erase(it); - return true; + return std::erase(positions, p) > 0; } } // namespace pacman