GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
std::all_of,std::any_of,std::none_of(3) C++ Standard Libary std::all_of,std::any_of,std::none_of(3)

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


Defined in header <algorithm>
template< class InputIt, class
UnaryPredicate > (since C++11)
bool all_of( InputIt first, InputIt (until C++20)
last, UnaryPredicate p );
template< class InputIt, class
UnaryPredicate > (since C++20)
constexpr bool all_of( InputIt first,
InputIt last, UnaryPredicate p );
template< class ExecutionPolicy, class
ForwardIt, class UnaryPredicate >
bool all_of( ExecutionPolicy&& policy, (2) (since C++17)
ForwardIt first, ForwardIt last,
UnaryPredicate p );
template< class InputIt, class
UnaryPredicate > (since C++11)
bool any_of( InputIt first, InputIt (until C++20)
last, UnaryPredicate p );
template< class InputIt, class
UnaryPredicate > (since C++20)
constexpr bool any_of( InputIt first, (1)
InputIt last, UnaryPredicate p );
template< class ExecutionPolicy, class
ForwardIt, class UnaryPredicate >
bool any_of( ExecutionPolicy&& policy, (4) (since C++17)
ForwardIt first, ForwardIt last,
UnaryPredicate p ); (3)
template< class InputIt, class (since
UnaryPredicate > C++11)
bool none_of( InputIt first, InputIt (until
last, UnaryPredicate p ); C++20)
template< class InputIt, class
UnaryPredicate > (since
constexpr bool none_of( InputIt first, (5) C++20)
InputIt last, UnaryPredicate p );
template< class ExecutionPolicy, class
ForwardIt, class UnaryPredicate > (since
bool none_of( ExecutionPolicy&& policy, (6) C++17)
ForwardIt first, ForwardIt last,
UnaryPredicate p );


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 do not
participate in overload resolution unless
std::is_execution_policy_v<std::decay_t<ExecutionPolicy>>
(until C++20)
std::is_execution_policy_v<std::remove_cvref_t<ExecutionPolicy>>
(since C++20) is true.


first, last - the range of elements to examine
policy - the execution policy to use. See execution policy for details.
unary predicate .


The expression p(v) must be convertible to bool for every argument v
p - 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).


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


See also Notes below.


1-2) true if unary predicate returns true for all elements in the range, false
otherwise. Returns true if the range is empty.
3-4) true if unary predicate returns true for at least one element in the range,
false otherwise. Returns false if the range is empty.
5-6) true if unary predicate returns true for no elements in the range, false
otherwise. Returns true if the range is empty.


1,3,5) At most last - first applications of the predicate
2,4,6) O(last-first) applications of the predicate


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


* If execution of a function invoked as part of the algorithm throws an exception
and ExecutionPolicy is one of the standard policies, std::terminate is called.
For any other ExecutionPolicy, the behavior is implementation-defined.
* If the algorithm fails to allocate memory, std::bad_alloc is thrown.


See also the implementations of all_of in libstdc++ and libc++.


See also the implementations of any_of in libstdc++ and libc++.


See also the implementations of none_of in libstdc++ and libc++.


template< class InputIt, class UnaryPredicate >
constexpr bool all_of(InputIt first, InputIt last, UnaryPredicate p)
{
return std::find_if_not(first, last, p) == last;
}


template< class InputIt, class UnaryPredicate >
constexpr bool any_of(InputIt first, InputIt last, UnaryPredicate p)
{
return std::find_if(first, last, p) != last;
}
Third version
template< class InputIt, class UnaryPredicate >
constexpr bool none_of(InputIt first, InputIt last, UnaryPredicate p)
{
return std::find_if(first, last, p) == last;
}


The return value represented in the form of the Truth table is:


input range contains
all true, some true, none true, none true,
none false some false all false none false
(empty range)
1–2) all_of true false false true
3–4) any_of true true false false
5–6) none_of false false true true

// Run this code


#include <vector>
#include <numeric>
#include <algorithm>
#include <iterator>
#include <iostream>
#include <functional>


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";
}
}


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


ranges::all_of
ranges::any_of checks if a predicate is true for all, any or none of the elements
ranges::none_of in a range
(C++20) (niebloid)
(C++20)
(C++20)

2022.07.31 http://cppreference.com

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.