Returns true if pred returns false for all the elements in the range [first, last] or if the range is empty, and false otherwise.
Syntax :
Template : bool none_of(InputIterator first, InputIterator last, UnaryPredicate pred); first, last Input iterators to the initial and final positions in a sequence. The range used is [first, last], which contains all the elements between first and last, including the element pointed by first but not the element pointed by last. pred Unary function that accepts an element in the range as argument and returns a value convertible to bool. The value returned indicates whether the element fulfills the condition checked by this function. The function shall not modify its argument. This can either be a function pointer or a function object. Return type : true if pred returns false for all the elements in the range [first, last] or if the range is empty, and false otherwise.
// CPP program to illustrate std :: none_of #include <algorithm> // none_of #include <iostream> // cout using namespace std;
// Function reference : // 1-introduction-and-school-method/ bool isPrime( int n)
{ // Corner cases
if (n <= 1)
return false ;
if (n <= 3)
return true ;
// This is checked so that we can skip
// middle five numbers in below loop
if (n % 2 == 0 || n % 3 == 0)
return false ;
for ( int i = 5; i * i <= n; i = i + 6)
if (n % i == 0 || n % (i + 2) == 0)
return false ;
return true ;
} // Driver code int main()
{ int arr[] = { 4, 6, 8, 12, 0 };
int n = sizeof (arr) / sizeof (arr[0]);
cout << "Array contains :" ;
for ( int i = 0; i < n; i++)
cout << ' ' << arr[i];
cout << "\n" ;
if (none_of(arr, arr + n, isPrime))
cout << "All numbers are composite.\n" ;
else
cout << "There are primes in array \n" ;
return 0;
} |
Array contains : 2 4 6 8 12 0 No negative elements in the range.
Time Complexity: O(n)
Auxiliary Space: O(1)
Practical Application :
std :: none_of function returns true if certain condition returns false for all the elements in the range [first, last] or if the range is empty, and false otherwise.
1. Check if array contains all even number or odd or both.
Array contains : 2 4 6 8 12 0 Contains even number only
Time Complexity: O(n)
Auxiliary Space: O(1)
2. To check whether array contains all prime number or not.
// CPP program to illustrate std :: none_of #include <algorithm> // none_of #include <iostream> // cout using namespace std;
// Function reference : // 1-introduction-and-school-method/ bool isPrime( int n)
{ // Corner cases
if (n <= 1)
return false ;
if (n <= 3)
return true ;
// This is checked so that we can skip
// middle five numbers in below loop
if (n % 2 == 0 || n % 3 == 0)
return false ;
for ( int i = 5; i * i <= n; i = i + 6)
if (n % i == 0 || n % (i + 2) == 0)
return false ;
return true ;
} // Driver code int main()
{ int arr[] = { 4, 6, 8, 12, 0 };
int n = sizeof (arr) / sizeof (arr[0]);
cout << "Array contains :" ;
for ( int i = 0; i < n; i++)
cout << ' ' << arr[i];
cout << "\n" ;
if (none_of(arr, arr + n, isPrime))
cout << "All numbers are composite.\n" ;
else
cout << "There are primes in array \n" ;
return 0;
} |
Array contains : 4 6 8 12 0 All numbers are composite.
Time Complexity: O(n)
Auxiliary Space: O(1)