std::greater是用於執行比較的函數對象。它被定義為greater-than不等式比較的Function對象類。這可用於更改給定函數的函數。這也可以與各種標準算法一起使用,例如排序,優先級隊列等。
頭文件:
#include <functional.h>
模板類別:
template <class T> struct greater;
參數: T是要通過函數調用進行比較的參數類型。
返回值:它返回布爾變量,如下所示:
- True:如果兩個元素說(a&b)使得a> b。
- False:如果a <b。
下麵是 C++ 中 std::greater 的圖示:
程序1:
// C++ program to illustrate std::greater
#include <algorithm>
#include <functional>
#include <iostream>
using namespace std;
// Function to print array elements
void printArray(int arr[], int n)
{
for (int i = 0; i < n; i++) {
cout << arr[i] << ' ';
}
}
// Driver Code
int main()
{
int arr[] = { 60, 10, 80, 40, 30,
20, 50, 90, 70 };
int n = sizeof(arr) / sizeof(arr[0]);
// To sort the array in decreasing order
// use greater <int>() as an third arguments
sort(arr, arr + 9, greater<int>());
// Print array elements
printArray(arr, n);
return 0;
}
輸出:
90 80 70 60 50 40 30 20 10
程序2:
// C++ program to illustrate std::greater
#include <functional>
#include <iostream>
#include <queue>
using namespace std;
// Function to print elements of priority_queue
void showpq(priority_queue<int, vector<int>,
greater<int> >
pq)
{
priority_queue<int,
vector<int>,
greater<int> >
g;
g = pq;
// While priority_queue is not empty
while (!g.empty()) {
// Print the top element
cout << g.top() << ' ';
// Pop the top element
g.pop();
}
}
// Driver Code
int main()
{
// priority_queue use to implement
// Max Heap, but using function
// greater <int> () it implements
// Min Heap
priority_queue<int, vector<int>,
greater<int> >
gquiz;
// Inserting Elements
gquiz.push(10);
gquiz.push(30);
gquiz.push(20);
gquiz.push(5);
gquiz.push(1);
// Print elements of priority queue
cout << "The priority queue gquiz is:";
showpq(gquiz);
return 0;
}
輸出:
The priority queue gquiz is:1 5 10 20 30
相關用法
- C語言 memset()用法及代碼示例
- C++ std::mismatch()用法及代碼示例
- C++ wcscpy()用法及代碼示例
- C++ wcscmp()用法及代碼示例
- C# Array.GetValue()方法用法及代碼示例
- C++ set_symmetric_difference用法及代碼示例
- C++ ratio_equal()用法及代碼示例
- C++ std::equal_to用法及代碼示例
- C++ quick_exit()用法及代碼示例
- C++ multiset lower_bound()用法及代碼示例
- C++ multiset upper_bound()用法及代碼示例
- C++ multiset max_size()用法及代碼示例
- C++ forward_list max_size()用法及代碼示例
- C++ std::allocator()用法及代碼示例
- C++ array data()用法及代碼示例
- C++ multiset size()用法及代碼示例
- C++ ratio_not_equal()用法及代碼示例
- C++ std::bit_or用法及代碼示例
- C++ iswprint()用法及代碼示例
- C++ iswgraph()用法及代碼示例
注:本文由純淨天空篩選整理自kothariji大神的英文原創作品 std::greater in C++ with Examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。