【发布时间】:2020-05-17 01:08:56
【问题描述】:
我正在编写一个具有自己的比较器功能的优先级队列。在我看到以下实现的每个地方都无法弄清楚在类或结构中定义比较器函数的基本原理是什么?
struct CompareHeight {
bool operator()(pair<int, int> const p1, pair<int, int> const p2)
{
if(p1.first == p2.first)
return p1.second > p2.second;
return p1.first < p2.first;
}
};
int main(){
priority_queue<pair<int, int >, vector<pair<int,int> >, CompareHeight> p;
}
编辑1 - 为什么使用class或struct直接定义一个比较器函数就像main函数并使用它?
【问题讨论】:
-
在 C++ 中,
struct和class是相同的,只是具有不同的默认访问权限(结构是公共的,类是私有的)。 -
更新了问题,谢谢
标签: c++ comparator