omp_); } #endif //PRIORITY_QUEUE_HPP
我们注意到:
1.优先级队列内部保存了排序规则,这与map和set是一致的。
2.前面我们提到heap算法除了make_heap之外,都必须保证之前是一个建好的heap,这里我们在构造函数中调用make_heap,保证了后面的各种heap算法都是合法的。
3.还有一点,如果T与容器的类型不一致,例如PriorityQueue
>,
那么我们的value_type优先采用int,毕竟我们操作的对象是容器。
测试代码如下:
#include "PriorityQueue.hpp"
#include
using namespace std;
int main(int argc, char const *argv[])
{
PriorityQueue
q; q.push(66.6); q.push(22.3); q.push(44.4); cout << q.top() << endl; q.pop(); cout << q.top() << endl; q.pop(); q.push(11.1); q.push(55.5); q.push(33.3); q.pop(); while(!q.empty()) { cout << q.top() << " "; q.pop(); } cout << endl; return 0; }
http://www.cnblogs.com/inevermore/p/4007130.html
??