登录

队列

队列

queue,队列,是 一种先进先出的数据结构,队尾插入元素,队头删除元素。

  • 基本语法

queue<typename> name;

需要加上头文件 queue

例如:

//表示创建一个int类型的队列,名字叫做que
queue<int> que;

队列的常用函数

  • push()

queue_name.push(x) 将x进队列。

push() 示例代码

    queue<int> que;
	que.push(10); // 放数值10进队列
	que.push(20); // 放数值20进队列
	que.push(30); // 放数值30进队列

此时,队列里的元素,从队头到队尾,元素依次是 10,20,30;

  • front()

queue_name.front() 获得队头元素。

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

运行结果:

队头元素是:10

  • back()

queue_name.back() 获得队尾元素。

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() 可以弹出队头元素。

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

通过 pop 函数,队列中的 10 被弹出去了,再次验证队列的删除是从队头进行操作的。

  • empty()

queue_name.empty() 可以检测queue内是否为空,返回true为空,返回false为非空。

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

运行结果:

队列内有元素

此时队列从队头到队尾,分别有元素 10,20,30,所以 empty 函数不成立,执行 else 部分,打印"队列内有元素"。

  • size()

queue_name.size() 返回queue内元素的个数。

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

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

登录