下列表格中带‘*’表示括号内无内容
否则括号内需要填要操作的元素
比如:
- name.pop()
- name.push(1)
名字 | 普通队列 | 双端队列 | 优先队列 |
---|---|---|---|
头文件 | #include <queue> | #include<deque> | #include <queue> |
声明(DateType 为任意数据类型) | queue<DateType> name | deque<DateType> name | priority_queue <DateType> name(默认从小到大排序) |
取出队首的值* | name.front() | name.front() name.back() | name.top() |
弹出元素(删掉,不取值)* | name.pop() | name.pop_back()->弹出队尾name.pop_front()->弹出队首 | name.pop() |
存入元素 | name.push | name.push_back()->存入队尾name.push_front()->存入队首 | name.push() |
求队列中元素个数 | name.size() | name.size() | name.size() |
其中,优先队列还能够自定义优先级
这时我们可以传入一个比较函数
struct cmp{
bool operator ()(int &a,int &b){
return a<b;
}
};
priority_queue<int, vector<int>,cmp > Queue;
其中
第二个参数为容器类型
第三个参数为比较函数