优先队列的理解-与堆排序的比较

  优先队列 priority_queue,头文件#include
  priority_queue<int, vector, greater> 表示队列内部是小顶堆,队列输出为升序序列(输出过程是小的先输出)。
  priority_queue<int, vector, less> 表示队列内部是大顶堆,队列输出为降序序列。(优先队列默认即为大顶堆)
  这里要与堆排序中的升序降序情况区别开来,在堆排序中,一般是对数组中的元素进行排序,如果要进行升序排序(即排序后的结果是升序的,并没有规定按什么顺序输出,排完之后数组中的元素变为升序),则利用大顶堆,每次调整后将堆顶元素(当前堆中最大元素)和最后一个元素交换,即从后往前变成有序的。同理,在降序排序中,要利用小顶堆,也是每次调整后将堆顶元素(当前堆中最小元素)和最后一个元素交换,从后往前变成有序的。