The C++ function is defined in <algorithm> library in STL. This function operates on whole range of array elements and can save time to run a loop to check each elements one by one. It checks for a given property on every element and returns true when each element in range satisfies specified property, else returns false. Syntax:
template <class InputIterator, class UnaryPredicate> bool all_of (InputIterator first, InputIterator last, UnaryPredicate pred); first : Input iterators to the initial positions in a sequence. last : Input iterators to the final positions in a sequence. pred : An unary predicate function that accepts an element and returns a bool.
Exception : Throws exception if either predicate or an operation on an iterator throws exception. Examples:
// C++ code to demonstrate working of all_of() #include <vector> #include <algorithm> #include <iostream> int main()
{ std::vector< int > v(10, 2);
// illustrate all_of
if (std::all_of(v.cbegin(), v.cend(), []( int i){ return i % 2 == 0; }))
{
std::cout << "All numbers are even\n" ;
}
} |
Output:
All numbers are even
Time Complexity: O(n) where n is the size of the vector.
Space Complexity: O(n)
// C++ code to demonstrate working of all_of() #include<iostream> #include<algorithm> // for all_of() using namespace std;
int main()
{ // Initializing array
int ar[6] = {1, 2, 3, 4, 5, -6};
// Checking if all elements are positive
all_of(ar, ar+6, []( int x) { return x>0; })?
cout << "All are positive elements" :
cout << "All are not positive elements" ;
return 0;
} |
Output:
All are not positive elements
Time Complexity: O(n) where n is the size of the vector.
Space Complexity: O(n)
In the above code, -6 being a negative element negates the condition and returns false. Useful array algorithms STL functions