std::greater_equal in C++ with Examples
Last Updated :
01 May, 2020
The std::greater_equal is a member of the functional class (<functional.h>). It is used to generate results of comparisons that are similar to the operator(≥). The advantage of this function over the operator(≥) is that it use the strict total order to generate the result, as opposed to the operator(≥) which uses the partial order. It returns a boolean value depending upon the condition. It can be used for comparing integers, characters, or strings, etc.
Header File:
#include <functional.h>
Template Class:
template <class T> struct greater_equal {
// Declaration of the
// greater equal operation
bool operator() (const T& x, const T& y)
const
{
return x>=y;
}
// Type of first parameter
typedef T first_argument_type;
// Type of second parameter
typedef T second_argument_type;
// The result is returned
// as bool type
typedef bool result_type;
};
Parameter: This function accepts the type of the arguments T, as the parameter, to be compared by the functional call.
Return Type: It return a boolean value depending upon condition (let a & b are 2 element):
- True: If a is greater than equals to b.
- False: If a is less than b.
Below is the illustration of std::greater_equal in C++:
Program 1:
#include <algorithm>
#include <functional>
#include <iostream>
using namespace std;
void printArray( int arr[], int N)
{
for ( int i = 0; i < N; i++) {
cout << arr[i] << ' ' ;
}
}
int main()
{
int arr[] = { 1, 5, 8, 9, 6,
7, 3, 4, 2, 0 };
int N = sizeof (arr) / sizeof (arr[0]);
sort(arr, arr + N, greater_equal< int >());
printArray(arr, N);
return 0;
}
|
Output:
9 8 7 6 5 4 3 2 1 0
Program 2:
#include <algorithm>
#include <functional>
#include <iostream>
using namespace std;
int main()
{
int arr[] = { 30, 40, -50, 60, -70,
10, 20, -80, 90, 100 };
int N = sizeof (arr) / sizeof (arr[0]);
cout << count_if(
arr, arr + N,
bind2nd(greater_equal< int >(),
0));
return 0;
}
|
Reference: http://www.cplusplus.com/reference/functional/greater_equal/
Share your thoughts in the comments
Please Login to comment...