C++中priority_queue的实现(二)

2015-07-20 17:32:58 · 作者: · 浏览: 11
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

??