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:
CPP // 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)
CPP // 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
Explore
C++ Basics
Core Concepts
OOP in C++
Standard Template Library(STL)
Practice & Problems
My Profile