STL(队列)--队列及其操作

题目描述

队列(queue):在线性表的一端插入元素,在另一端删除元素,所以遵循先进先出( FIFO)原则,元素从队尾进,队首出,不允许插队!
其中删除元素的一端称为队首(front),插入元素的一端称为队尾(rear)。
队列就像我们排队打饭,先来的先打饭,后来的只能排在队尾。

输入格式

第1行包含一个整数 ,表示有 条关于 queue 的操作,在进行任何操作之前,queue 都是空的。接来的 行,每行是一个关于 queue 的操作,格式和含义如下:
clear:把队列置空。
empty:判断队列是否为空。
push:把整数 x 插入队尾(x 为 int 范围里的数)。
pop: 队首元素出队列。
front:获取队首元素的值。

输出格式

对于 front 操作,输出一个整数,如果这个操作失败,则输出单词 ”error”。
对于 pop 操作,如果这个操作失败,则输出单词 “error”。
对于 empty 操作,如果队列是空,则输出 ”empty”,否则输出 ”not empty”。

样例

输入样例

8
push 10
front
push 15
pop
front
clear
front
pop

输出样例

10
15
error
error

数据范围与提示

n≤20000

题目类型

数据结构板块,STL中队列应用

解题过程

有手就行

思路

先创建一个队列,再根据题目给的几种情况进行判断。
注意
(1):
其中"clear:把队列置空。"这个函数c++队列里是没有自带的,需要用一个while循环不断去删去队头元素,直到队列变空为止。
(2):

本题多组测试数据!!!

code
#include
using namespace std;
int n;
string s;
queue q;
int a;
int main()
{
	cin>>n; 
	for(int i=1;i<=n;i++)
	{
		cin>>s;
		if(s=="push")
		{
			cin>>a;
			q.push(a);
		}
		if(s=="empty")
		{
			if(q.empty()) cout<<"empty"<

The End

你可能感兴趣的:(数据结构,STL,队列,数据结构)