添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
Filesystem library (C++17) Regular expressions library (C++11) Concurrency support library (C++11) Execution support library (C++26) Technical specifications Symbols index External libraries
[edit]
Algorithm library
Constrained algorithms and algorithms on ranges (C++20)
Constrained algorithms, e.g. ranges::copy , ranges::sort , ...
Execution policies (C++17)
Non-modifying sequence operations
Batch operations
(C++17)
Search operations
all_of any_of none_of
(C++11) (C++11) (C++11)
Modifying sequence operations
Copy operations
(C++11)
(C++11)
Swap operations
Transformation operations
Generation operations
fill_n
Removing operations
Order-changing operations
(until C++17) (C++11)
(C++20) (C++20)
Sampling operations
(C++17)
Lexicographical comparison operations
Permutation operations
Defined in header <algorithm>
template < class InputIt, class UnaryPred >
bool all_of ( InputIt first, InputIt last, UnaryPred p ) ;
(since C++11)
(constexpr since C++20)
template < class ExecutionPolicy, class ForwardIt, class UnaryPred >

bool all_of ( ExecutionPolicy && policy,
ForwardIt first, ForwardIt last, UnaryPred p ) ;

(since C++17)
template < class InputIt, class UnaryPred >
bool any_of ( InputIt first, InputIt last, UnaryPred p ) ;
(since C++11)
(constexpr since C++20)
template < class ExecutionPolicy, class ForwardIt, class UnaryPred >

bool any_of ( ExecutionPolicy && policy,
ForwardIt first, ForwardIt last, UnaryPred p ) ;

(since C++17)
template < class InputIt, class UnaryPred >
bool none_of ( InputIt first, InputIt last, UnaryPred p ) ;
(since C++11)
(constexpr since C++20)
template < class ExecutionPolicy, class ForwardIt, class UnaryPred >

bool none_of ( ExecutionPolicy && policy,
ForwardIt first, ForwardIt last, UnaryPred p ) ;

(since C++17)
1) Checks if unary predicate p returns true for all elements in the range [ first , last ) .
3) Checks if unary predicate p returns true for at least one element in the range [ first , last ) .
5) Checks if unary predicate p returns true for no elements in the range [ first , last ) .
2,4,6) Same as (1,3,5) , but executed according to policy .
These overloads participate in overload resolution only if

std:: is_execution_policy_v < std:: decay_t < ExecutionPolicy >> is true .

std:: is_execution_policy_v < std:: remove_cvref_t < ExecutionPolicy >> is true .

(until C++20)
(since C++20)

Contents

  • 1 Parameters
  • 2 Return value
  • 3 Complexity
  • 4 Exceptions
  • 5 Possible implementation
  • 6 Example
  • 7 See also
  • [ edit ] Parameters

    unary predicate .

    The expression p ( v ) must be convertible to bool for every argument v of type (possibly const) VT , where VT is the value type of InputIt , regardless of value category , and must not modify v . Thus, a parameter type of VT & is not allowed , nor is VT unless for VT a move is equivalent to a copy (since C++11) .

    Type requirements -
    InputIt must meet the requirements of LegacyInputIterator .
    -
    ForwardIt must meet the requirements of LegacyForwardIterator .
    -
    UnaryPred must meet the requirements of Predicate .

    [ edit ] Return value

    Has true element Has false element all_of false false any_of false false none_of false false

    [ edit ] Complexity

    1-6) At most std:: distance ( first, last ) applications of the predicate p .

    [ edit ] Exceptions

    The overloads with a template parameter named ExecutionPolicy report errors as follows:

    any_of
    template<class InputIt, class UnaryPred>
    constexpr bool any_of(InputIt first, InputIt last, UnaryPred p)
        return std::find_if(first, last, p) != last;
    
    none_of
    template<class InputIt, class UnaryPred>
    constexpr bool none_of(InputIt first, InputIt last, UnaryPred p)
        return std::find_if(first, last, p) == last;
    

    [edit] Example

    #include <algorithm>
    #include <functional>
    #include <iostream>
    #include <iterator>
    #include <numeric>
    #include <vector>
    int main()
        std::vector<int> v(10, 2);
        std::partial_sum(v.cbegin(), v.cend(), v.begin());
        std::cout << "Among the numbers: ";
        std::copy(v.cbegin(), v.cend(), std::ostream_iterator<int>(std::cout, " "));
        std::cout << '\n';
        if (std::all_of(v.cbegin(), v.cend(), [](int i) { return i % 2 == 0; }))
            std::cout << "All numbers are even\n";
        if (std::none_of(v.cbegin(), v.cend(), std::bind(std::modulus<>(),
                                                         std::placeholders::_1, 2)))
            std::cout << "None of them are odd\n";
        struct DivisibleBy
            const int d;
            DivisibleBy(int n) : d(n) {}
            bool operator()(int n) const { return n % d == 0; }
        if (std::any_of(v.cbegin(), v.cend(), DivisibleBy(7)))
            std::cout << "At least one number is divisible by 7\n";
    

    Output:

    Among the numbers: 2 4 6 8 10 12 14 16 18 20
    All numbers are even
    None of them are odd
    At least one number is divisible by 7

    [edit] See also

    checks if a predicate is true for all, any or none of the elements in a range
    (niebloid) [edit]
    Toolbox
  • What links here
  • Related changes
  • Upload file
  • Special pages
  • Printable version
  • Page information
    • In other languages
  • Deutsch
  • Español
  • Français
  • Italiano
  • 日本語
  • Português
  • Русский
  • 中文
  •