您的位置:首页 > 产品设计 > UI/UE

STL-优先队列(priority queue)

2015-04-04 10:38 176 查看
普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先删除。优先队列具有最高级先出的行为特征。

操作函数

q.top(); //返回队列顶部的元素值,普通队列为q.front();

q.pop(); //删除队列顶部的元素值

q.push(); //把x元素插入到优先级队

q.empty(); //判断队列是否为空。为空返回true,否则返回false

优先队列的定义

1.结构体内定义

struct node
{
int x, y;
friend bool operator < (node a, node b)
{
return a.x > b.x;//结构体中,x小的优先级高
}
};

priority_queue<node>q1;


2.定义cmp函数

struct cmp1
{
bool operator ()(int x, int y)
{
return x > y;//小的优先级高
}
};

priority_queue<int, vector<int>, cmp1>q2;


3.普通定义

priority_queue<int>q;
//通过操作,按照元素从大到小的顺序出队
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: