STL练习-ACboy needs your help again!
he miss his mother very much and is very scare now.You can't image how dark the room he was put into is, so poor :(.
As a smart ACMer, you want to get ACboy out of the monster's labyrinth.But when you arrive at the gate of the maze, the monste say :" I have heard that you are very clever, but if can't solve my problems,
The problems of the monster is shown on the wall:
Each problem's first line is a integer N(the number of commands), and a word "FIFO" or "FILO".(you are very happy because you know "FIFO" stands for "First In First Out", and "FILO" means "First In Last Out").
and the following N lines, each line is "IN M" or "OUT", (M represent a integer).
and the answer of a problem is a passowrd of a door, so if you want to rescue ACboy, answer the problem carefully!
4
4 FIFO
IN 1
IN 2
OUT
OUT
4 FILO
IN 1
IN 2
OUT
OUT
5 FIFO
IN 1
IN 2
OUT
OUT
OUT
5 FILO
IN 1
IN 2
OUT
IN 3
OUT
Sample Output
1
2
2
1
1
2
None
2
3
分别定义一个栈和一个队列,输入FIFO即先入先出,操作队列,输入FILO即先入后出,操作栈。
1 #include<iostream>
2 #include<stack>
3 #include<queue>
4 using namespace std;
5 int main()
6 {
7 stack<int> s;
8 queue<int> q;
9 int n;
10 cin>>n;
11 while(n--)
12 {
13 int m;
14 string s1;
15 cin>>m>>s1;
16 while(!s.empty())s.pop();//循环开始清空栈和队列
17 while(!q.empty())q.pop();
18 if(s1=="FIFO")//先入先出操作队列
19 {
20 for(int i=0;i<m;i++)
21 {
22 string s2;int num;
23 cin>>s2;
24 if(s2=="IN"){cin>>num;q.push(num);}//入队
25 if(s2=="OUT"){
26 if(q.empty())cout<<"None"<<endl;//队列为空不能"OUT",输出None
27 else
28 {
29 cout<<q.front()<<endl;//q.front()取队头值
30 q.pop();//无返回值,借助q.front()获得队头值
31 }
32 }
33 }
34 }
35 if(s1=="FILO")
36 {
37 for(int i=0;i<m;i++)
38 {
39 string s2;int num;
40 cin>>s2;
41 if(s2=="IN"){cin>>num;s.push(num);}//入栈
42 if(s2=="OUT"){
43 if(s.empty())cout<<"None"<<endl;//栈为空时
44 else
45 {
46 cout<<s.top()<<endl;s.pop();//s.pop()无返回值,借助s.top()获得栈顶元素
47 }
48
49 }
50 }
51 }
52
53 }
54 return 0;
55 }
STL练习-ACboy needs your help again!的更多相关文章
- (hdu step 8.1.1)ACboy needs your help again!(STL中栈和队列的基本使用)
题目: ACboy needs your help again! Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ...
- hdoj 1702 ACboy needs your help again!【数组模拟+STL实现】
ACboy needs your help again! Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ( ...
- hdu1702 ACboy needs your help again![简单STL 栈 队列]
目录 题目地址 题干 代码和解释 参考 题目地址 hdu1702 题干 代码和解释 本题很简单,只要掌握STL stack和STL vector的语法即可作答.记录本题是为了记录STL vector的 ...
- stl 题目总结
stl 题目总结 一.圆桌问题 1 .问题: 圆桌上围坐着2n个人.其中n个人是好人,另外n个人是坏人.如果从第一个人开始数数,数到第m个人,则立即处死该人:然后从被处死的人之后开始数数,再将数到的第 ...
- 详细解说 STL 排序(Sort)
0 前言: STL,为什么你必须掌握 对于程序员来说,数据结构是必修的一门课.从查找到排序,从链表到二叉树,几乎所有的算法和原理都需要理解,理解不了也要死记硬背下来.幸运的是这些理论都已经比较成熟,算 ...
- STL标准模板库(简介)
标准模板库(STL,Standard Template Library)是C++标准库的重要组成部分,包含了诸多在计算机科学领域里所常见的基本数据结构和基本算法,为广大C++程序员提供了一个可扩展的应 ...
- STL的std::find和std::find_if
std::find是用来查找容器元素算法,但是它只能查找容器元素为基本数据类型,如果想要查找类类型,应该使用find_if. 小例子: #include "stdafx.h" #i ...
- STL: unordered_map 自定义键值使用
使用Windows下 RECT 类型做unordered_map 键值 1. Hash 函数 计算自定义类型的hash值. struct hash_RECT { size_t operator()(c ...
- C++ STL简述
前言 最近要找工作,免不得要有一番笔试,今年好像突然就都流行在线笔试了,真是搞的我一塌糊涂.有的公司呢,不支持Python,Java我也不会,C有些数据结构又有些复杂,所以是时候把STL再看一遍了-不 ...
- codevs 1285 二叉查找树STL基本用法
C++STL库的set就是一个二叉查找树,并且支持结构体. 在写结构体式的二叉查找树时,需要在结构体里面定义操作符 < ,因为需要比较. set经常会用到迭代器,这里说明一下迭代器:可以类似的把 ...
随机推荐
- 选择一个有效的选项。xxx不在可用的选项中。
选择一个有效的选项.xxx不在可用的选项中. 原因:choice选项的索引类型与字段的类型不匹配. 说明:choice选项的索引类型与字段的类型,不能前面是int,后面是char. 错误示例: cla ...
- Docker学习笔记-02 常用命令
1.启动类: 启动docker: systemctl start docker 停止docker: systemctl stop docker 重启docker: systemctl restart ...
- 大规模并行处理器编程实战_原书第2版_pdf
链接:https://pan.baidu.com/s/1c8ez8dCTz5bUQchwhXAF7w 提取码:tc1f
- Arrays.sort()降序排序
默认的Java.util包中的Arrays.sort(),可以实现对java中的基本数据类型(byte.char.short.int.long.float.double.boolean)的数组进行升序 ...
- 混淆css类名
使用vite:
- 面试题-react
对react的理解 是什么 React 是一个用于构建用户界面的 JavaScript 库. 能干什么 可以通过组件化的方式构建大型的,快速响应的大型web应用 如何做 声明式 React 使用jsx ...
- 使用VS Code打造完美的嵌入式IDE
参考这个博主https://blog.csdn.net/qq_34245464/article/details/100769643的博文, 使用VS Code再重新打造一次完美的嵌入式IDE平台. 前 ...
- (读书笔记)基于CMMI的软件工程及实训指导(13-16章)
软件测试 1.定义: 使用人工或自动的手段来运行或测试某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别. 简单来说,软件测试是为了发现程序中的错误而执行的过程. ...
- pat题目整理
Pat最终题目整理(菜鸟级别) 一:几个函数 ①Reverse()函数: stoi将字符串类型转为int型 :to_string关键字 头文件:#include<algorithm>; # ...
- Unity Random
Random 不仅可以随机值,还可以随机其它属性,用了这么久,刚知道... 譬如: rotation 随机Rotation onUnitSphere 球体表面随机点 insideUnitCircl ...