c++中用类模板来定义顺序栈类

 我来答
匿名用户
2013-08-22
展开全部
#include <iostream>
using namespace std;

template <class T>
class stack {
public:
stack(T n)
: base(new T[n]), sp(base), size(0), capacity(n)
{ }

T push(T n) {
*sp++ = n;
++size;
return n;
}
T pop() {
return *--sp;
}

void dump() const {
for(T* p = base; p != sp; ++p)
cout << *p << ' ';
cout.put('\n');
}

bool empty() const {
return sp == base;
}

~stack() {
if(capacity != 0)
delete [] base;
}
private:
T* base;
T* sp;
int size;
const int capacity;
};

#define PUSH( s, a, b ) for( i = 0; i < b; ++i ) s.push( a+i );
#define POP( a ) while( !a.empty() ) cout << a.pop() << ' '; cout.put( '\n' );
int main()
{
stack<int> a(10);
stack<char> b(10);
stack<double> c(10);
int i;
PUSH( a, 1, 3 );
PUSH( b, 'a', 5 );
PUSH( c, 1.1, 8 );
a.dump(); b.dump(); c.dump();
POP( a ); POP( b ); POP( c );
return 0;
}

附图:
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式