c++之stack栈模型
前言
#include
stack是堆栈容器,是一种“先进后出的容器”
一、stack使用方法
- stack.push(elem); //往栈头添加元素
- stack.pop(); //从栈头移除以第一个元素
- stack.top(); //返回最后一个入栈元素
- stack.empty();//判断栈是否为空
- stack.size();//返回堆栈大小
二、用法案例
#include<stack>
#include<iostream>
Class Teacher
{
public:
Teacher (const char *name,int age)//有参构造函数
{
strcpy(this->name,name);
this->age=age;
}
Teacher()//无参构造函数
{
strcpy(this->name,0);
this->age=o;
}
void printT()
{
cout<<"name:"<<name<<"age:"<<age<<endl;
}
public:
char name[64];//记得要分配内存
int age;
}
void main()
{
Teacher t1("t1",12),t2("t2",14),t3("t3",17);
//对象入栈
stack<Teacher *> s;
s.push(&t1);
s.push(&t2);
s.push(&t3);
//查看栈大小,并且让元素出栈
while(!s.empty())
{
cout<<"栈目前大小:"<<s.size()<<endl;
Teacher *tmp=s.top();//把栈头元素返回给一个Teacher 变量
tmp->printT();
s.pop();//删栈
}
return;
}