⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 b_11_2.cpp

📁 C++应用教程原码,里面包含该书中有十三章内容的代码,详细具体
💻 CPP
字号:
#include "stdafx.h"
#include <iostream>
#include <string>
#include<iomanip>
#include<fstream>
using namespace std;
template <class Type>
class Stack {
public:
	Stack(int size);
	~Stack()
	{ delete [] stack;}
	void push(Type i);
	Type pop();
private:
	int tos,length;
	Type *stack;
};

template <class Type>
Stack <Type>::Stack(int size)
{  stack = new Type[size];
   if (!stack)
   { cout << "对不起,无法创建栈!"<<endl;
     exit(-1);
   }
   length = size;
   tos = 0;
}
template <class Type>
void Stack <Type>::push(Type i)
{  if (tos == length)
   { cout << "对不起,栈已经满了!"<<endl;
     return;
   }
   stack[tos++]=i;
}
template <class Type>
Type Stack <Type>::pop()
{  if (tos == 0)
   { cout << "对不起,栈已经空了!"<<endl;
     return 0;
   }
   return stack[--tos];
}
void main()
{ Stack <int> a(8);
  Stack <double> b(8);
  Stack <string> c(8);
  cout << "依次压入栈内的数:"<<endl;
  for (int i=0;i<8;i++)
  {   cout <<setw(5)<<i;
	  a.push(i);
  }
 cout << endl<<"依次弹出栈外的数:"<<endl;
  for (int i=0;i<8;i++)
	  cout << setw(5)<< a.pop();

  double doub[4]={3.12,32.68,1.11,32.34};
  cout <<endl<<"依次压入栈内的浮点数:"<<endl;
  for (i=0;i<3;i++)
  {   cout <<setw(10)<<doub[i];
	  b.push(doub[i]);
  }
 cout << endl<<"依次弹出栈外的浮点数:"<<endl;
 for (i=0;i<3;i++)
	  cout << setw(10)<< b.pop();

  string str[3]={"hello","good","morning"};
  cout <<endl<<"依次压入栈内的字符串:"<<endl;
  for (int i=0;i<3;i++)
  {   cout <<setw(10)<<str[i];
	  c.push(str[i]);
  }
 cout << endl<<"依次弹出栈外的字符串:"<<endl;
 for (int i=0;i<3;i++)
	  cout << setw(10)<< c.pop();
 cin.get(); //等待结束,以便调测程序,可以删除
}


⌨️ 快捷键说明

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