From 62e9cf2f5cd43471c759265f7dc8fa92300806a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Delobel?= Date: Sun, 5 Feb 2023 00:34:30 +0100 Subject: [PATCH] Use find_if. Learn how to capture in lambda --- main.cpp | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/main.cpp b/main.cpp index f4633f5..bd67559 100644 --- a/main.cpp +++ b/main.cpp @@ -184,14 +184,10 @@ int main() } } - for (auto character: vanime) - { - if (character->hp() < 3) - { - cout << "found one: " << character->name() << "(" << character << ")" << endl; - break; - } - } + auto pv = 3; + auto harmed = find_if(std::begin(vanime), std::end(vanime), [pv](auto p){ return p->hp() < pv;}); + if ( harmed != std::end(vanime) ) + cout << "found one harmed: " << (*harmed)->name() << "(" << (*harmed) << ")" << endl; auto x = find_half_dead(4, anime); if (x != nullptr)