Komparatoren in STL

Ich bin mit struct minHeap zu generieren, die einen min-heap, der priority_queue .Und die Funktion comp drucken, zahlen in umgekehrter Reihenfolge mit sort-Funktion in AWL . Nun meine Frage ist, kann ich nicht verwenden struct minHeap in der Funktion sort und können nicht verwenden Sie die Funktion comp in priorityQueue .

Ich das Gefühl, dass die Funktion der beiden struct minHeap und comp ähnlich ist. Bitte erklären Sie mir, Wann Strukturen für comaprator und bei Verwendung normaler Funktionen zu Verhalten, als Komparatoren in STL ?

#include<iostream>
#include <queue>
#include <stdio.h>
#include<algorithm>
using namespace std;

struct minHeap
{
    bool operator()(const int a , const int b )
    {
        return a>b;
    }
};
bool comp(int a , int b)
{
    return a>b;
}

int main()
{
    priority_queue<int , vector<int> , minHeap > b;

    b.push(4);
    b.push(23);
    b.push(12);
    while(b.size()!=0)
    {
        cout << b.top() << " " ;
        b.pop();
    }
    cout<<"\n" ;
    int arr[] = {12,34, 112,12};
    sort(arr , arr+4  ,comp);

    for(int x= 0 ; x < 4 ; x++)
    {
        cout << arr[x] << " " ;
    }
}
mögliche Duplikate von Vergleich Funktor Typen vs. operator<

InformationsquelleAutor Arpit Agarwal | 2012-09-20

Schreibe einen Kommentar