struct minHeapを使用して、priority_queueを使用して最小ヒープを生成しています。また、関数compを使用して、STLで指定された並べ替え関数を使用して数値を逆の順序で出力します。今、私の疑問は、関数の並べ替えでstruct minHeapを使用できず、priorityQueueで関数compを使用できないことです。
structminHeapとcompの両方の機能は似ていると思います。いつcomapratorに構造体を使用するか、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] << " " ;
}
}