STL
一、STL
标准模板库(STL)中包含了很多实现各种功能的系统函数,包括常用数据结构和算法。
二、stack
1. 定义
使用栈添加头文件:stack
定义格式:stack <数据类型> 栈名;
#include <stack>
stack <int> s;
2. 功能
| 语句 | 功能 |
|---|---|
push(x) |
元素 x x x 入栈 |
pop() |
将栈顶元素弹出 |
top() |
查询栈顶元素 |
empty() |
查询栈是否为空(栈空返回 true) |
size() |
查询栈的元素个数 |
3. 真题
T1 栈基本操作
T1.1 审题
题目描述
给出n种栈操作,包括:
push x:将整数x入栈;
pop:弹出栈顶,成功则输出"pop x",否则输出"pop fail"。
top:查询栈顶元素,成功则输出"top=x",否则输出"top fail"。
size:查询栈内元素个数,输出"size=x"。
empty:查询栈是否为空,为空则输出y,否则输出n。
输入描述
第一行,整数 n n n,表示 n n n 次操作。
接下来 n n n 行,每行一个操作。
输出描述
根据操作要求输出。
样例1
输入
5 push 5 size top pop empty输出
size=1 top=5 pop 5 y
提示
1 ≤ n ≤ 100 1\le n\le100 1≤n≤100
T1.2 参考答案
#include <iostream>
#include <stack>
using namespace std;
int main()
{
int n, x;
cin >> n;
string c;
stack <int> s; // 定义栈s
for (int i = 1; i <= n; i++)
{
cin >> c;
if (c == "push")
{
cin >> x;
s.push(x); // 入栈
}
else if (c == "pop")
{
if (!s.empty()) // 判断栈是否为空
{
cout << "pop " << s.top() << endl; // 输出栈顶
s.pop(); // 出栈
}
else
{
cout << "pop fail\n"; // 输出pop fail
}
}
else if (c == "top")
{
if (!s.empty()) // 判断栈是否为空
{
cout << "top=" << s.top() << endl; // 输出栈顶
}
else
{
cout << "top fail\n"; // 输出top fail
}
}
else if (c == "size")
{
cout << "size=" << s.size() << endl;// 输出栈大小

最低0.47元/天 解锁文章
2234

被折叠的 条评论
为什么被折叠?



