std::greater in C++ with Examples
The std::greater is a functional object which is used for performing comparisons. It is defined as a Function object class for the greater-than inequality comparison. This can be used for changing the functionality of the given function. This can also be used with various standard algorithms such as sort, priority queue, etc.
Header File:
#include <functional.h>
Template Class:
template <class T> struct greater;
Parameter: T is a type of the arguments to compare by the functional call.
Return Value: It returns boolean variable as shown below:
- True: If two element say(a & b) such that a > b.
- False: If a < b.
Below is the illustration of std::greater 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[] = { 60, 10, 80, 40, 30,
20, 50, 90, 70 };
int n = sizeof (arr) / sizeof (arr[0]);
sort(arr, arr + 9, greater< int >());
printArray(arr, n);
return 0;
}
|
Output:
90 80 70 60 50 40 30 20 10
Program 2:
#include <functional>
#include <iostream>
#include <queue>
using namespace std;
void showpq(priority_queue< int , vector< int >,
greater< int > >
pq)
{
priority_queue< int ,
vector< int >,
greater< int > >
g;
g = pq;
while (!g.empty()) {
cout << g.top() << ' ' ;
g.pop();
}
}
int main()
{
priority_queue< int , vector< int >,
greater< int > >
gquiz;
gquiz.push(10);
gquiz.push(30);
gquiz.push(20);
gquiz.push(5);
gquiz.push(1);
cout << "The priority queue gquiz is : " ;
showpq(gquiz);
return 0;
}
|
Output:
The priority queue gquiz is : 1 5 10 20 30
Last Updated :
22 Apr, 2020
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...