//实现一个栈
//用数组
#include <iostream>
#include <vector>
using namespace std;
template<typename type> class stack1
{
private:
vector<type> v;//数组实现栈
int size = 0;//栈的大小
int top = -1;
public:
stack1();
~stack1();
bool empty();
type gettop();
void push(type t);
bool pop();
int getsize();
};
template<typename type>
stack1<type>::stack1(){}
template<typename type>
stack1<type>::~stack1(){}
template<typename type>
type stack1<type>::gettop()
{
return v[top];
}
template<typename type>
void stack1<type>::push(type t)
{
v.push_back(t);
size++;
top++;
}
template<typename type>
bool stack1<type>::pop()
{
if (empty())
{
cout << "栈为空" << endl;
return false;
}
v.pop_back();
size--;
top--;
return true;
}
template <typename type>
bool stack1<type>::empty()
{
if (size == 0)
return true;
return false;
}
template<typename type>
int stack1<type>::getsize()
{
return size;
}
int main()
{
stack1<int> s;
s.push(3);
s.push(4);
s.push(5);
int n = s.getsize();
for (int i = 0; i < n; i++)
{
int result = s.gettop();
s.pop();
cout << result << " ";
}
system("pause");
return 0;
}