1.将一个list类的成员stack作为 类Stack的私有成员
2.每次写Stack的成员,其实是偷偷的用这个list对象stack的函数
#include<iostream>
#include<string>
#include<cmath>
#include<vector>
#include<list>
using namespace std;
//其实用模板类写是最好的
template<typename T>
class Stack
{
private:
list<T> stack;
public:
//默认构造就够了
//(1)入栈
void push_stack(T tmp)
{
stack.push_back(tmp);
}
//(2)出栈
T pop_stack()
{
T tmp = stack.back(); //返回最后一个元素的引用
stack.pop_back();
return tmp;
}
//(3)清空队列
void clear_stack()
{
stack.clear();
}
//(4)返回队列当前的大小
int size_stack()
{
return stack.size();
}
};
int main()
{
//测试:
Stack<int> test;
test.push_stack(5);
test.push_stack(2);
test.push_stack(8);
cout << "当前栈的大小 :" << test.size_stack() << endl;
test.clear_stack();
cout << "当前栈的大小 :" << test.size_stack()<<endl;
Stack<string> stack2;
stack2.push_stack("886666888");
stack2.push_stack("65535");
cout<<stack2.pop_stack()<<"出栈"<<endl;
cout << "stack2的 当前大小为:" << stack2.size_stack();
return 0;
}