1,队列的特点是先进先出,通常把队列比喻为排队买饭,先排队的人先买到饭,;
2,优先队列不同,它是根据队列元素的优先权,优先权大的先被取到;
3,一些操作函数:
enpty();如果队列为空,返回为真;
top();返回优先队列队顶元素;
pop();删除队顶元素;
push();添加元素到队列里面;
size();返回元素的个数
4,优先队列的定义:
头文件: #include<queue>
定义:
<1>
priority_queue<int> q;
默认是从大到小进行排序
<2>
struct cmp
{
operator ()(int x,int y)
{
return x>y;
}
};
priority_queue<int,vector<int>,cmp> q;
//其中第二个参数是容器,第三个参数是比较函数
这样优先队列就从小到大,进行排序;
3,自定义进行排序
struct node
{
friend bool operator <(node n1, node n2)
{
return n1.priority > n2.priority;
}
}
这样优先队列按照权值得大小进行排序