ex7-2-2.cpp

来自「一些学习c++的例题」· C++ 代码 · 共 59 行

CPP
59
字号
#include <iostream>

using namespace std;

template <class T>
class Stack
{
private:
   T * contents;
   int sp, depth;

public:
   Stack(int d = 20)
   {
      depth = d;
      contents = new T[depth];
      sp = 0;
   }

   ~Stack()
   {
      delete []contents;
   }

   void Push(T e)
   {
      if (sp < depth - 1)
      {
	 contents[++sp] = e;
	 cout << "Element pushed: " << e << endl;
      }
      else
	 cout << "Stack overflow!\n";
   }

   T Pop()
   {
      if (sp)
	 return contents[sp--];
      else
      {
	 cout << "Stack is empty!\n";
	 return contents[sp];
      }
   }
};

void main()
{
   Stack<int> is;
   is.Push(1);
   is.Push(9);
   cout << is.Pop() << endl;

   Stack<double> ds;
   ds.Push(2.2);
   ds.Push(8.8);
   cout << ds.Pop() << endl;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?