怎么做自己地网站百度推广优化
priority_queue<int, vector<int>, greater<int>> heap;
这行代码在 C++ 中声明了一个优先队列
heap
,其元素类型为int
,使用vector<int>
作为其底层容器,并且指定了greater<int>
作为比较函数对象。这里的关键是
greater<int>
的使用,它告诉priority_queue
以相反于默认方式来比较元素。默认情况下,priority_queue
是一个最大堆(大根堆),即堆顶元素是最大的。但是,通过使用greater<int>
,它将变为最小堆(小根堆),即堆顶元素是最小的。
-
默认情况:如果你不指定第三个模板参数,默认情况下
priority_queue
是一个最大堆。这是因为默认的比较是less<int>
,它将最大的元素放在堆顶。 -
使用
greater
:当你使用greater<int>
作为第三个模板参数时,它改变了元素的比较方式,使得比较结果相反。因此,原本应该是最大的元素现在变成了最小的,堆变成了最小堆。 -
记住关键字:
less
通常意味着“较少”,在默认情况下它创建了一个最大堆。而greater
意味着“更多”,使用它创建了一个最小堆。