priority_queue常用操作 - STEMHA's Blog

priority_queue常用操作

概念

priority_queue容器适配器定义了一个元素有序排列的队列。

  • 默认队列头部的元素优先级最高。
    • 因为它是一个队列,所以只能访问第一个元素,这也意味着优先级最高的元素总是第一个被处理。
  • 如何定义“优先级”完全取决于我们自己。

模板

1
priority_queue<int,vector<int>,greater<int> >q;

priority_queue初始化方法

1
2
3
队列的排序,右边是出队列的地方
priority_queue<int>q; 经常使用的,默认是less,元素大的优先级高。
priority_queue<int,vector<int>,greater<int> >q; 元素小的优先级高。

交换

swap(priority_queue<T>& other):和参数的元素进行交换,所包含对象的类型必须相同。:将当前 queue 中的元素和参数 priority_queue 中的元素交换。它们需要包含相同类型的元素。也可以调用全局函数模板 swap() 来完成同样的操作。

1
2
void swap(priority_queue<T> &x) 重载1:x.swap(y)
void swap(priority_queue<T> &x, priority_queue<T> &y) 重载2: swap(x, y)

常用操作

1
2
3
4
5
q.push(element); 入优先级队列
q.pop(); 出优先级队列
q.top(); 返回优先级队列头成员
q.size(); 返回优先级队列成员个数
q.empty(); 是否为空

参考资料

C++ priority_queue(STL priority_queue)用法详解

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×