admin管理员组

文章数量:1623796

  1. 排序:
    less<T>变成升序(从左到右遍历下标时,数组元素是从小到大
    greater<T>变成降序(从左到右遍历下标时,数组元素是从大到小
  2. 建堆:
    less<T>变成大顶堆(从上层到下层,堆元素是从大到小,同层之间随便)
    greater<T>变成小顶堆(从上层到下层,堆元素是从小到大,同层之间随便)
  3. priority_queue<int> :是默认的大根堆实现,top()是当前优先队列的最大值。

  4. priority_queue<int,vector<int>,greater<int> >是 最小值的优先队列,top() 是当前优先队列的最小值。注意"> >",因为不写空格可能编译器会解释为右移操作符">>"。

  5. priority_queue<int,vector<int>,less<int> >是 最大值的优先队列,top() 是当前优先队列的最大值。

  6. 模板里面有三个参数,第一个为元素的类型,第二个为所使用的容器(vector或deque),第三个为一个比较的规则,决定是最大优先队列还是最小优先队列,默认的less为最大优先队列,实现方式是最大堆,greater为最小优先队列,实现方式是最小堆,结构都是二叉树。

本文标签: greaterpriorityqueue