0

队列

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; 图解如下:
image.png ::

  • 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;
}

运行结果:

队尾元素是:30

::

  • 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;
}

运行结果:

队列内元素个数是:3

:: tip 分析 此时队列从队头到队尾,分别有元素 10,20,30,所以一共是 3 个元素。 ::

队列的小练习

上一章
stack
下一章
tuple