queue,队列,是 一种先进先出的数据结构,队尾插入元素,队头删除元素。
- 基本语法
queue<typename> name;
需要加上头文件 queue
例如:
//表示创建一个int类型的队列,名字叫做que
queue<int> que;
- push()
queue_name.push(x) 将x进队列。
:: details push() 示例代码
queue<int> que;
que.push(10); // 放数值10进队列
que.push(20); // 放数值20进队列
que.push(30); // 放数值30进队列
:: tip 分析
此时,队列里的元素,从队头到队尾,元素依次是 10,20,30;
图解如下:
::
- front()
queue_name.front() 获得队头元素。
:: details front() 示例代码
#include<bits/stdc++.h>
#include<queue>
using namespace std;
int main()
{
queue<int> que;
que.push(10); // 放数值10进队列
que.push(20); // 放数值20进队列
que.push(30); // 放数值30进队列
cout << "队头元素是:" << que.front() << endl;
return 0;
}
运行结果:
```c
队头元素是:10
::
- back()
queue_name.back() 获得队头元素。
:: details back() 示例代码
#include<bits/stdc++.h>
#include<queue>
using namespace std;
int main()
{
queue<int> que;
que.push(10); // 放数值10进队列
que.push(20); // 放数值20进队列
que.push(30); // 放数值30进队列
cout << "队尾元素是:" << que.back() << endl;
return 0;
}
运行结果:
::
- pop()
queue_name.pop() 可以弹出队头元素。
:: details pop() 示例代码
#include<bits/stdc++.h>
#include<queue>
using namespace std;
int main()
{
queue<int> que;
que.push(10); // 放数值10进队列
que.push(20); // 放数值20进队列
que.push(30); // 放数值30进队列
cout << "pop之前:" << endl;
cout << "队头元素是:" << que.front() << endl;
cout << "队尾元素是:" << que.back() << endl;
que.pop();
cout << "pop之后:" << endl;
cout << "队头元素是:" << que.front() << endl;
cout << "队尾元素是:" << que.back() << endl;
return 0;
}
运行结果:
pop之前:
队头元素是:10
队尾元素是:30
pop之后:
队头元素是:20
队尾元素是:30
:: tip 分析
通过 pop 函数,队列中的 10 被弹出去了,再次验证队列的删除是从队头进行操作的。
::
- empty()
queue_name.empty() 可以检测queue内是否为空,返回true为空,返回false为非空。
:: details empty() 示例代码
#include<bits/stdc++.h>
#include<queue>
using namespace std;
int main()
{
queue<int> que;
que.push(10); // 放数值10进队列
que.push(20); // 放数值20进队列
que.push(30); // 放数值30进队列
if(que.empty())
{
cout << "队列内是空的" << endl;
}else{
cout << "队列内有元素" << endl;
}
return 0;
}
运行结果:
:: tip 分析
此时队列从队头到队尾,分别有元素 10,20,30,所以 empty 函数不成立,执行 else 部分,打印"队列内有元素"。
::
- size()
queue_name.size() 返回queue内元素的个数。
:: details size 示例代码
#include<bits/stdc++.h>
#include<stack>
using namespace std;
int main()
{
queue<int> que;
que.push(10); // 放数值10进队列
que.push(20); // 放数值20进队列
que.push(30); // 放数值30进队列
cout << "队列内元素个数是:" << que.size() << endl;
return 0;
}
运行结果:
:: tip 分析
此时队列从队头到队尾,分别有元素 10,20,30,所以一共是 3 个元素。
::