堆栈是一种容器适配器,专门设计用于在LIFO环境(后进先出)中操作,在该环境中,仅从容器的一端插入和提取元素。
常用函数
1 T top() 访问栈顶元素
2 bool empty() 检测底层容器是否为空
3 int size() 返回容器的元素个数
4 void push(T) 向栈顶插入元素
5 void emplace() C++11新标准,于顶原位构造元素,或者可以理解为在栈顶位置替换元 素
6 void pop() 删除栈顶元素
7 void swap(stack&s) 交换内容,这里是两个堆栈的整体交换
测试代码
#include <iostream>
#include <stack>
#include <string>
#include <list>
#include <assert.h>
using namespace std;
void main()
{
stack<string,list<string> > s1;
s1.push("苹果");
cout<<"\"苹果\" 放入堆栈中. "<<endl;
s1.push("香蕉");
cout<<"\"香蕉\" 放入堆栈中. "<<endl;
s1.push("梨子");
cout<<"\"梨子\" 放入堆栈中. "<<endl;
s1.push("西瓜");
cout<<"\"西瓜\" 放入堆栈中. "<<endl;
assert(s1.size()==4);
assert(s1.top()=="西瓜") ;
cout<<"将元素从栈顶弹出."<<endl;
while(s1.size())
{
cout<<" "<<s1.top()<<endl;
s1.pop();
}
}