當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C++ std::greater用法及代碼示例


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



相關用法


注:本文由純淨天空篩選整理自kothariji大神的英文原創作品 std::greater in C++ with Examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。