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

📄 vc0804.cpp

📁 VC例题源代码,书本上的。。几乎是通用的
💻 CPP
字号:
//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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -