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; } }
这样优先队列按照权值得大小进行排序
时间: 2024-10-22 22:50:04