STL之priority_queue(优先队列)

priority_queue是一个容器适配器,在这个容器里第一个数据元素是最大的。它的使用场景是什么样:如果12306抢票,为什么黄牛能抢这么多票,感觉12306那边的请求队列是一个优先队列,黄牛的请求携带了一个隐含参数,所以他的请求最先执行。当然这是怀疑。不过也是优先级队列的使用场景。还可以进行排序,把数据压入优先队列中,然后出队列就是由大到小排列了

注意:stl的priority_queue容器需要一个boolean operator<(const T& ,const T&)函数,注意是函数不是方法。

#include <iostream>
#include <queue>
using namespace std;

typedef struct
{
    int a;
    string b;
} Item;

bool operator < ( const Item &left,const Item &right )
{
    if(left.a<right.a){
    return true;
    }else{
    return false;
    }
}

int main()
{
    std::priority_queue< Item >        item_quene ;
    Item t1;
    t1.a=2;
    t1.b="gaoxing";
    item_quene.push(t1);
    Item t2;
    t2.a=3;
    t2.b="nihao";
    item_quene.push(t2);
}

 

posted @ 2015-02-09 19:15  高兴的博客  阅读(296)  评论(0编辑  收藏  举报