diff --git a/AK/Vector.h b/AK/Vector.h index a261ac6241..88c0ba74c2 100644 --- a/AK/Vector.h +++ b/AK/Vector.h @@ -173,6 +173,17 @@ public: return {}; } + template + Optional first_matching(TUnaryPredicate predicate) const requires(!contains_reference) + { + for (size_t i = 0; i < size(); ++i) { + if (predicate(at(i))) { + return Optional(at(i)); + } + } + return {}; + } + template Optional last_matching(TUnaryPredicate predicate) requires(!contains_reference) {