Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::all_of,std::any_of,std::none_of

      From cppreference.com
      <cpp‎ |algorithm
       
       
      Algorithm library
      Constrained algorithms and algorithms on ranges(C++20)
      Constrained algorithms, e.g.ranges::copy,ranges::sort, ...
      Execution policies(C++17)
      Sorting and related operations
      Partitioning operations
      Sorting operations
      Binary search operations
      (on partitioned ranges)
      Set operations (on sorted ranges)
      Merge operations (on sorted ranges)
      Heap operations
      Minimum/maximum operations
      (C++11)
      (C++17)
      Lexicographical comparison operations
      Permutation operations
      C library
      Numeric operations
      Operations on uninitialized memory
       
      Defined in header<algorithm>
      template<class InputIt,class UnaryPred>
      bool all_of( InputIt first, InputIt last, UnaryPred p);
      (1)(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);
      (2)(since C++17)
      template<class InputIt,class UnaryPred>
      bool any_of( InputIt first, InputIt last, UnaryPred p);
      (3)(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);
      (4)(since C++17)
      template<class InputIt,class UnaryPred>
      bool none_of( InputIt first, InputIt last, UnaryPred p);
      (5)(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);
      (6)(since C++17)
      1) Checks if unary predicatep returnstrue for all elements in the range[firstlast).
      3) Checks if unary predicatep returnstrue for at least one element in the range[firstlast).
      5) Checks if unary predicatep returnstrue for none of the elements in the range[firstlast).
      2,4,6) Same as(1,3,5), but executed according topolicy.
      These overloads participate in overload resolution only if all following conditions are satisfied:

      std::is_execution_policy_v<std::decay_t<ExecutionPolicy>> istrue.

      (until C++20)

      std::is_execution_policy_v<std::remove_cvref_t<ExecutionPolicy>> istrue.

      (since C++20)

      Contents

      [edit]Parameters

      first, last - the pair of iterators defining therange of elements to examine
      policy - theexecution policy to use
      p - unary predicate .

      The expressionp(v) must be convertible tobool for every argumentv of type (possibly const)VT, whereVT is the value type ofInputIt, regardless ofvalue category, and must not modifyv. Thus, a parameter type ofVT&is not allowed, nor isVT unless forVT a move is equivalent to a copy(since C++11).​

      Type requirements
      -
      InputIt must meet the requirements ofLegacyInputIterator.
      -
      ForwardIt must meet the requirements ofLegacyForwardIterator.
      -
      UnaryPred must meet the requirements ofPredicate.

      [edit]Return value

      Range has sometrue elementYesNo
       Range has somefalse element YesNoYes    No[1]
      all_offalsetruefalsetrue
      any_oftruetrue  false    false  
      none_of  false    false  truetrue
      1. The range is empty in this case.

      [edit]Complexity

      1-6) At moststd::distance(first, last) applications of the predicatep.

      [edit]Exceptions

      The overloads with a template parameter namedExecutionPolicy report errors as follows:

      • If execution of a function invoked as part of the algorithm throws an exception andExecutionPolicy is one of thestandard policies,std::terminate is called. For any otherExecutionPolicy, the behavior is implementation-defined.
      • If the algorithm fails to allocate memory,std::bad_alloc is thrown.

      [edit]Possible implementation

      See also the implementations of

      all_of
      template<class InputIt,class UnaryPred>constexprbool all_of(InputIt first, InputIt last, UnaryPred p){returnstd::find_if_not(first, last, p)== last;}
      any_of
      template<class InputIt,class UnaryPred>constexprbool any_of(InputIt first, InputIt last, UnaryPred p){returnstd::find_if(first, last, p)!= last;}
      none_of
      template<class InputIt,class UnaryPred>constexprbool none_of(InputIt first, InputIt last, UnaryPred p){returnstd::find_if(first, last, p)== last;}

      [edit]Example

      Run this code
      #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{constint 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 20All numbers are evenNone of them are oddAt least one number is divisible by 7

      [edit]See also

      checks if a predicate istrue for all, any or none of the elements in a range
      (algorithm function object)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/algorithm/all_any_none_of&oldid=182360"

      [8]ページ先頭

      ©2009-2025 Movatter.jp