std::ranges::any_of
Актуально для C++23.
#include <algorithm>
Актуально на 2025-05-07.
Define overload #1
template<input_iterator I, sentinel_for<I> S, class Proj = identity, indirect_unary_predicate<projected<I, Proj>> Pred> constexpr bool ranges::any_of(I first, S last, Pred pred, Proj proj = {});
Вернёт true, если предикат "pred" возвратит true для любого элемента из диапазона [first, last], иначе, false.
Example, possible implementation
Define overload #2
template<input_range R, class Proj = identity, indirect_unary_predicate<projected<iterator_t<R>, Proj>> Pred> constexpr bool ranges::any_of(R&& r, Pred pred, Proj proj = {});
Вернёт true, если предикат "pred" возвратит true для любого элемента из последовательности "r", иначе, false.
Example, possible implementation
Notes
- Поиск начинается с начала последовательности и до момента, когда, найдется первый элемент.
Examples
Example 1:
#include <iostream> #include <algorithm> namespace ranges = std::ranges; int main() { auto list = {'D', 'i', 'R', 'f'}; auto any_upper = ranges::any_of(list, [](unsigned char ch) { return std::isupper(ch); }); auto any_lower = ranges::any_of(list, [](unsigned char ch) { return std::islower(ch); }); auto any_digit = ranges::any_of(list, [](unsigned char ch) { return std::isdigit(ch); }); std::cout << std::boolalpha; std::cout << any_upper << std::endl; std::cout << any_lower << std::endl; std::cout << any_digit << std::endl; return 0; }
true true false
Changelog
C++20
Введён в стандарт.See also
TODO
This page was last modified on 2025-05-07