📜  C++中的std :: greater以及示例

📅  最后修改于: 2021-05-30 07:17:43             🧑  作者: Mango

std :: greater是用于执行比较的功能对象。它被定义为大于不等式比较的函数对象类。这可用于更改给定函数。这也可以与各种标准算法一起使用,例如排序,优先级队列等。

头文件:

#include 

模板类别:

template  struct greater;

参数: T是要通过函数调用进行比较的参数的类型。

返回值:返回布尔变量,如下所示:

  • 正确:如果两个元素都说(a&b)使得a> b。
  • 错误:如果a

下面是C++中std :: greater的插图:

程序1:

// C++ program to illustrate std::greater
  
#include 
#include 
#include 
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 () as an third arguments
    sort(arr, arr + 9, greater());
  
    // 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 
#include 
#include 
using namespace std;
  
// Function to print elements of priority_queue
void showpq(priority_queue,
                           greater >
                pq)
{
    priority_queue,
                   greater >
        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  () it implements
    // Min Heap
    priority_queue,
                   greater >
        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++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”