C++容器之Priority queue
来源:互联网 发布:mac steam好玩的游戏 编辑:程序博客网 时间:2024/06/07 00:27
简介
Priorityqueue是一种容器适配器,它的第一个元素始终是容器中的最大值。
Priorityqueue作为容器适配器而实现,它是一种使用指定的容器类作为其潜在的容器存储元素,并提供一组元素操作函数的类。
Priorityqueue的潜在容器可以是标准容器类,也可以是通过特殊设计的容器类。这些容器类必须满足能随机访问且支持如下操作:
Ø front()
Ø push_back()
Ø pop_back()
标准容器vector和deque都能满足其要求。默认情况下,如果创建priority queue时没有指定容器类作为其潜在的容器,vector容器类将作为其默认的潜在类。
成员函数
priority_queue::priority_queue()
创建一个priority_queue容器适配器对象。
priority_queue::empty()
判断一个priority_queue是否为空,如果为空返回true,否则返回false。
priority_queue:size()
计算priority_queu中元素的个数。
priority_queue::top()
返回优先队列顶端的元素的引用。
priority_queue::push()
向优先队列中插入一个新的元素。
priority_queue::emplace()
向队列中插入一个元素,插入的元素有其构造函数构造。
priority_queue::pop()
删除队列顶端的元素。
priority_queue::swap()
交换两个队列中元素。
示例程序
#include <iostream>#include <queue>#include <deque>#include <functional>using namespace std;class comparison{public:comparison(const bool& revparam = false){reverse = revparam;}bool operator() (const int& m, const int& n) const{if(reverse){return m > n;}else{return m < n;}}private:bool reverse;};int main(void){int arr[] = {10, 50, 30, 20, 60};// priority_queue::priority_queue()priority_queue<int> first;priority_queue<int> second(arr, arr+5);priority_queue<int, vector<int>, greater<int>>third(arr, arr+5);priority_queue<int, vector<int>, comparison> fourth;typedef priority_queue<int, vector<int>, comparison> pq_type;pq_type firth(comparison());pq_type sixth(comparison(true));// priority_queue::empty()if(second.empty()){cout << "Second is empty." << endl;}else{cout << "Second is not empty." << endl;}// priority_queue::size()cout << "The size of second : " << second.size() << endl;// priority_queue::top()cout << "second.top() is : " << second.top() << endl;// priority_queue::push()second.push(80);// priority_queue::emplace()second.emplace(100);// priority_queue::pop()cout << "second.top() is : " << second.top() << endl;second.pop();cout << "second.top() is : " << second.top() << endl;// priority_queue::swap()first.swap(second);cout << "The size of first : " << first.size() << endl;cout << "The size of second : " << second.size() << endl;}
0 0
- C++容器之Priority queue
- 标准模板库(STL)学习探究之Priority Queue容器
- 标准模板库(STL)学习探究之Priority Queue容器
- Chapter 4: 序列式容器之 heap and priority queue
- priority queue
- C++STL之queue队列容器
- STL学习之heap & priority queue
- STL之优先队列priority queue
- c++queue容器介绍
- c++queue容器介绍
- c++queue容器介绍
- c++queue容器
- c++queue容器介绍
- c++queue容器介绍
- 容器适配器之queue
- C++容器之Queue
- C++之容器queue
- STL容器之queue
- Boost::asio io_service 实现分析
- Swift学习这十七:重载(override)
- 冒泡排序(Objective-C --- NSMutableArray类目版)
- 浅谈Java类与对象的概念区别
- 黑马程序员_人工线程池
- C++容器之Priority queue
- 谷歌眼镜与智能枪支搭配 或可改写未来战争方式
- Python的startswith和endswith
- codeforce 11 A
- freemarker 基本语法
- 用HTML轻松实现GroupBox的边框效果
- 设计模式之享元模式(Flyweight)摘录
- swift入门之CustomViewController Navigation Controller
- 站内搜索 lucenenet 和 pangu4lucene分词