头文件queue主要包括循环队列queue和优先队列priority_queue(默认为大根堆)两个容器
引入队列
C++中queue
的实现在<queue>
头文件和std
命名空间中,在代码开头引用这个头文件。
#include <queue>
using namespace std;
构造⼀个队列
C++ 中直接构造⼀个 queue 的语句为:
queue<type> q; //type可以是int char string ...
常用函数
方法 | 说明 |
---|---|
front() | 返回第一个元素 |
back() | 返回最后一个元素 |
pop() | 删除第一个元素 |
push() | 在末尾加入一个元素 |
empty() | 如果队列空则返回真 |
size() | 返回队列中元素的个数 |
附:
size() 调用方式: int n = q.size();
实例
- 清空队列
#include <iostream>
#include <queue>
using namespace std;
int main()
{
queue<int> q;
q.push(11);
q.push(22);
q.push(33);
while(q.size()) // 等价于 while(!q.empty())
q.pop();
cout << q.size();
return 0; //output:0
}
- 模拟队列
#include <iostream>
#include <queue>
using namespace std;
const int N = 1010;
int q[N], hh, tt = -1;
int main()
{
q[++tt] = 111;
q[++tt] = 222;
q[++tt] = 333;
cout << q[hh++] << " "; // 取队首元素,并删除队首元素
while (hh <= tt)
hh++; // 删除队首元素 类似q.pop()
cout << (tt - hh + 1); // 取栈的大小 q.size()
return 0; // output:111 0
}
- 定义小根堆和大根堆
#include <iostream>
#include <queue>
using namespace std;
int main()
{
priority_queue<int, vector<int>, greater<int> > min_heap;//小根堆
priority_queue<int, vector<int>, less <int> > max_heap;//大根堆 等价于:priority_queue<int> max_heap
return 0;
}
轻松一下
戴上耳机,享受电音带来的视觉盛宴吧!【如有错误,敬请留言】