#include <stack> #include <string> #include <iostream> int main() { std::cin.tie(0); std::ios::sync_with_stdio(false); int T, n; for (std::cin >> T; T; --T) { std::stack<unsigned long long int> s; for (std::cin >> n; n; --n) { std::string t; std::cin >> t; if (t == "push") { unsigned long long x; std::cin >> x; s.push(x); } else if (t == "pop") { if (s.empty()) std::cout << "Empty\n"; else s.pop(); } else if (t == "query") { if (s.empty()) std::cout << "Anguei!\n"; else std::cout << s.top() << '\n'; } else { std::cout << s.size() << '\n'; } } } return 0; }
时间: 2024-04-28 11:22:50 浏览: 11
这是一段 C++ 代码,实现了一个栈的基本操作。其中,程序首先从标准输入读入测试用例的数量 T,然后对于每个测试用例,它会从标准输入读入操作的数量 n,然后依次执行每个操作。操作分为四种:push、pop、query 和 size。其中,push 表示将一个数压入栈中,pop 表示将栈顶的数弹出,query 表示输出栈顶的数,size 表示输出栈中元素的数量。
这段代码使用了 C++ 标准库中的 stack 类来实现栈的功能。同时,为了提高输入输出效率,使用了 std::cin.tie(0) 和 std::ios::sync_with_stdio(false) 来关闭 cin 和 cout 的同步,从而加快输入输出的速度。
相关问题
解释#include <iostream> #include <stack> #include <string> #include <map>
这段代码是C++中的预处理指令,用于引入系统标准库中的四个头文件,分别是iostream、stack、string和map。
iostream是C++标准输入输出流库,包括了cout、cin、cerr、clog等流对象,以及一些相关的函数和类。
stack是C++标准模板库(STL)中的一个容器适配器,用于实现栈(后进先出)数据结构。
string是C++标准库中的一个字符串类,用于方便地处理字符串,提供了诸如拼接、查找、替换等功能。
map是C++标准库中的一个关联容器,用于建立一对一的映射关系,类似于Python中的字典。它可以通过快速查找键来获取对应的值。
通过引入这四个头文件,我们可以方便地使用它们提供的函数和类来完成我们的程序设计。
include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<string> #include<stack> #include<queue> #include<algorithm>
这些是C++中常用的头文件,它们提供了一些常用的函数和数据结构的定义和操作。下面是对每个头文件的简要介绍:
1. `cstdio`:提供了C语言中的输入输出函数,如`printf`、`scanf`等。
2. `cstdlib`:提供了一些常用的函数,如内存分配函数`malloc`、随机数生成函数`rand`等。
3. `cstring`:提供了一些字符串操作函数,如字符串复制函数`strcpy`、字符串连接函数`strcat`等。
4. `cmath`:提供了一些数学函数,如求平方根函数`sqrt`、求绝对值函数`abs`等。
5. `string`:提供了字符串类的定义和操作,如字符串的拼接、查找、替换等。
6. `stack`:提供了栈数据结构的定义和操作,如入栈、出栈、判断栈空等。
7. `queue`:提供了队列数据结构的定义和操作,如入队、出队、判断队空等。
8. `algorithm`:提供了一些常用的算法函数,如排序函数`sort`、查找函数`find`等。
这些头文件可以通过包含它们来使用其中定义的函数和数据结构。在编写C++程序时,根据需要选择合适的头文件来使用其中的功能。