priority_queue 复习学习

来源:互联网 发布:淘宝官方的数据工具 编辑:程序博客网 时间:2024/06/05 06:24
#include "stdafx.h"#include <iostream>#include <stdlib.h>#include <stdio.h>#include <queue>#include <vector>using namespace std;class myClass{public:myClass(){cout<<"myClass()"<<endl;}~myClass(){cout<<"~myClass()"<<endl;}};typedef struct  {int m;int n;} mystruct; bool operator > (const mystruct &m1,const mystruct &m2){return m1.m > m2.m;}priority_queue<mystruct,vector<mystruct> ,std::greater<mystruct> > myPq;int _tmain(int argc, _TCHAR* argv[]){mystruct m1;m1.m=10;mystruct m2;m2.m=20;myPq.push(m1);myPq.push(m2);while(!myPq.empty()){cout<< myPq.top().m <<endl;myPq.pop();}return 0;}
使用
priority_queue 队列,按照你定的关键字进行排序。
template <class T, class Container = vector<T>,  class Compare = less<typename Container::value_type> > class priority_queue;


通过定义可以知道,把你的数据放到了自定的容器中,需要注意的

class Container = vector<T> 默认的这种容器,选择其他容器要谨慎,
如果按照自己的容器来排序,那么就要重载
operator > 操作符。