栈是容器适配器中的一种,有后进先出的特点,每次只能访问栈顶并对其进行操作,就像摞一座塔一样,只能将元素放在最上面,并只能从最顶端操作。
需要包含stack头文件
创建栈的操作:
stack<数据类型> 变量名;
如:stack<int> a;
栈的有关操作:
s.push(n);// 将n放到栈顶
s.top(); //访问栈顶
s.pop(); //删除栈顶
s.size(); //返回栈中元素的个数
s.empty(); //检查栈是否为空,如为空则返回ture
如有爆栈的情况,可以在编译器中设置调大系统的栈,或者自己编写栈。
用法举例:
翻转字符串,倒序输出
#include<iostream>
#include<stack>
using namespace std;
int main()
{
char ch;
stack<char> str;
while (1)
{
ch = getchar();//逐个读入字符
if (ch == '\n')//判断输入结束
{
while (!str.empty())//判断是否非空
{
cout << str.top();//输出栈顶
str.pop();//删除栈顶
}
cout << endl;//换行
}
else
str.push(ch);//入栈
}
return 0;
}