stack<string> s;//声明一个对象
1.入栈:如s.push(x);
2.出栈:如 s.pop().注意:出栈操作只是删除栈顶的元素,并不返回该元素。
3.访问栈顶:如s.top();
4.判断栈空:如s.empty().当栈空时返回true。
5.访问栈中的元素个数,如s.size();
下面我们以PAT1009 说反话来简单说明一下stack的用法
题目是要我们输入一个只包含英文和空格和英文的字符串,然后输出其反序
#include<iostream>
#include<string>
#include<stack>//头文件
using namespace std;
int main()
{
string s;//定义一个字符串
stack<string> ss;//定义储存字符串的栈
while (cin >> s) {//当有内容输入时一直重复此操作
ss.push(s); //这一步很妙,可以实现一句话的输入,避免了因为空格导致输入结束
} //输入ctrl+z结束输入
cout << ss.top();
ss.pop();
while (!ss.empty()) {
cout << ' ' << ss.top();
ss.pop();
}
return 0;
}
本文通过一个PAT1009题目的例子,介绍了如何利用C++中的stack容器进行字符串反序操作。主要步骤包括入栈、出栈、访问栈顶元素以及判断栈是否为空。程序通过读取整句输入,避免空格影响,然后逐句反序输出。

425

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



