洛谷-【模板】队列

题目:

请你实现一个队列(queue),支持如下操作:

push(x):向队列中加入一个数 x。

pop():将队首弹出。如果此时队列为空,则不进行弹出操作,并输出 ERR_CANNOT_POPquery():输出队首元素。如果此时队列为空,则输出 ERR_CANNOT_QUERY

size():输出此时队列内元素个数。

        队列是一种数据结构,用于存放有顺序的数据,先存入的数据会被放在队列顶部。在队列中的元素不能改变原有顺序,对于队列底部的数据就是最后存放的数据。如果以队列顶部的元素的视角,整个容器就像是排队时候排起的长队,先来的站在离顶端近的地方,后来的站在离顶端远的地方。

STL:

        C++标准库中内置了<queue>容器,可以模拟队列的操作。需调用<queue>头文件。

        STL中队列的一些基础操作:

queue<int>q创建一个队列
q.front()访问队列的第一个元素
q.pop()删除队列的最后一个元素
q.push()往队列末尾加入元素
q.empty()

判断队列是否为空

返回0为非空,返回1为空

q.size()返回队列内元素个数
#include <iostream>
#include <queue>
typedef long long ll;
typedef unsigned long long ull;
const int M = 10005;

using namespace std;

int n, t;
queue<ull>q;

int main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin >> t;
	while (t--) {
		cin >> n;
		if (n == 1) {
			int x;
			cin >> x;
			q.push(x);
		} else if (n == 2) {
			if (q.empty())
				cout << "ERR_CANNOT_POP" << '\n';
			else
				q.pop();
		} else if (n == 3) {
			if (q.empty())
				cout << "ERR_CANNOT_QUERY" << '\n';
			else
				cout << q.front() << '\n';
		} else if (n == 4)
			cout << q.size() << '\n';
	}
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值