数据结构-优先队列与栈
今天不多BB,直接讲2个数据结构!
优先队列(priority queue)
优先队列没什么好说的,和队列相似,同样遵循FIFO,但优先队列中的数据按升序或者降序排列,定义如下:
#include <bits/stdc++.h>
#include <queue> // 队列头文件中有优先队列
priority_queue <typename, vector<typename>, less/greater<typename> > name;
具体解释一下,typename
代表队列中存储的元素类型,less/greater
代表升序/降序
对于优先队列,他的操作如下:
priority_queue <int, vector<int>, less<int> > s;
s.pop() // 弹出队列顶部的元素
s.push(x) // 在队列中弹入x
s.size() // int类型,返回s的大小
s.empty() // bool类型,如果s为空返回true,否则返回false
s.top() // 返回s的顶部元素
栈(stack)
栈也是是一种特殊的线性表,他的性质只允许元素从最后入,从最后出,所以他也满足FILO(First In Last Out)
性质,也就是先进后出。
PS:没有优先栈,只有单调栈,这是个很复杂的东西,可以去看这里的题解
我们也不是用函数来模拟了,直接讲:
#include <stack> // 栈的头文件
stack <typename> s;
s.pop() // 弹出栈顶部的元素
s.push(x) // 在栈中弹入x
s.size() // int类型,返回s的大小
s.empty() // bool类型,如果s为空返回true,否则返回false
s.top() // 返回s的顶部元素
以上就是本篇的全部内容啦!希望能给你带来新的认知!以上!
标签:返回,优先,less,队列,元素,数据结构 From: https://www.cnblogs.com/Earnoise/p/stl-priority-queue-and-stack.html