vc0804.cpp

来自「VC面向对象的学习教程」· C++ 代码 · 共 60 行

CPP
60
字号
//Example 8.4: 定义一个通用的栈类
#include <iostream.h>
#include <afx.h>
template <class T, int n = 10>
class AnyStack
{
	T	m_tStack[n];
	int	m_nMaxElement;
	int	m_nTop;
	public:
		AnyStack() : m_nMaxElement(n), m_nTop(0){}
		int  GetTop() {return m_nTop;}
		bool Push(T);					//入栈函数
		bool Pop(T&);					//出栈函数
};
template <class T, int n>
bool AnyStack <T, n>::Push(T elem)
{
	if(m_nTop<=m_nMaxElement)
	{
		m_tStack[m_nTop] = elem;
		m_nTop++;
		return true;
	}
	else
		return false;
}
template <class T, int n>
bool AnyStack <T, n>::Pop(T &elem)
{
	if(m_nTop > 0)
	{
		m_nTop--;
		elem = m_tStack[m_nTop];
		return true;
	}
	else
		return false;
}
// 测试用主函数
void main()
{
	AnyStack <int> iStack;			//定义一个整数栈
	int n;
	CString s1;
	iStack.Push(5);  
	iStack.Push(6);
	iStack.Pop(n);
	cout << "第一个出栈整数= " << n << endl;
	iStack.Pop(n);
	cout << "第二个出栈整数= " << n << endl;
	AnyStack <CString> strStack;			//定义一个CString栈
	strStack.Push("It's first string");
	strStack.Push("It's second string");
	strStack.Pop(s1);
	cout << "第一个出栈字符串=" << s1 << endl;
	strStack.Pop(s1);
	cout << "第一个出栈字符串=" << s1 << endl;
}

⌨️ 快捷键说明

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