|

楼主 |
发表于 2016-2-17 23:00:19
|
显示全部楼层
有劳了- #include <iostream>
- #include <string>
- template<class T>
- class Stack
- {
- public:
- Stack(unsigned int size = 100)
- {
- this->size = size;
- data = new T[size];
- sp = 0;
- }
- ~Stack()
- {
- delete []data;
- }
- void push(T value)throw(const char *)
- {
- if(sp<=size)
- {
- data[sp++] = value;
- }
- else
- {
- throw"栈溢出\n";
- }
- }
- T pop()throw(const char *)//返回一个T类型
- {
- if(sp>0)
- {
- return data[--sp];
- }
- else
- {
- throw"栈不存在数据\n";
- }
- }
- private:
- unsigned int size;
- unsigned int sp;
- T *data;
- };
- int main()
- {
- Stack<int> intstack(1);//表明是int类型
- try
- {
- intstack.push(1);
- intstack.push(2);
- intstack.push(3);
- }
- catch(const char *pp)
- {
- std::cout << pp;
- return 1;
- }
- try
- {
- std::cout<<intstack.pop()<<"\n";
- std::cout<<intstack.pop()<<"\n";
- std::cout<<intstack.pop()<<"\n";
- }
- catch(const char *p)
- {
- std::cout<< p;
- }
- return 0;
- }
复制代码 |
|