//stack集合类是一个简单的堆栈的实现。
//这里有两个模板参数,T和size,指定堆栈中的元素类型和堆栈中项数的最大值。
//push 和 pop成员函数添加和删除堆栈中的项,并在堆栈底部增加。
#include
#include
#include
using namespace std;
template //出错点
class stack
{
private:
T items[size];
int top;
const int MaxSize;
public:
stack():MaxSize(size)
{
top=-1;//指向栈底
}
bool IsFull();
bool IsEmpty();
void push(const T item);
T pop();
};
template
bool stack::IsFull()
{
if(top==MaxSize-1)
{
return true;
}
else
{
return false;
}
}
template
bool stack::IsEmpty()
{
if (top==-1)
{
return true;
}
else
{
return false;
}
}
template //出错点
void stack::push(const T item)
{
if (IsFull())
{
cout<
return;
}
else
{
items[++top]=item;
}
}
template
T stack::pop()
{
if (!IsEmpty())
{
return items[top--];
}
else
{
cout<
return 0;
}
}
void main()
{
//stack s;//栈中存放字符串
stack s; //栈中存放整型数据
while(!s.IsFull())
{
//s.push("123");//字符串入栈
s.push(1);//整型数据入栈
}
while(!s.IsEmpty())
{
cout<
}
system("pause");
}