📄 vc0804.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 + -