永发信息网

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

答案:1  悬赏:60  手机版
解决时间 2021-05-11 01:04
c++中用类模板来定义顺序栈类
最佳答案
#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;
}

附图:

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
QQ炫舞学堂累积答题奖励
惠州下一轮的非师范毕业生补修教育学、心理学
怎么增强记忆力啊??
白露湿花是什么意思?
为什么我的QQ空间没有了
鸽子拉水是怎么回事,鸽子不会飞,怎么办?
谁能帮我用:汪、林、燕三字有创意的解说一下
经常喝酒的人应怎样膳食
中国科技大。东南大学。同济大学这3个学校的
结婚是金钱交易吗?
天龙八部YB店摆摊怎么能坐到中间的路上啊
热血高校中头上戴墨镜的是谁
装可怜能得到些什么好处呢?
关于不争不抢淡泊名利的名言
有在歪歪电台做主播的吗本人拜师??
推荐资讯
妇联宣传标语运动会,运动会宣传语
从保定火车站怎样到江阴
中秋的传说
移动还收漫游费吗,现在手机漫游,还有漫游费
登封市事业单位公开招聘的考试成绩什么时候出
为什么我家电脑主板总是被烧《一天14小时都开
ipod shuffle 2 复制歌就出现未知错误-50
在优酷搜叫“bskball3”的视频,艾弗森的,有
对地铁公司的寄语,对公司展望寄语
魔蝎座和巨蟹座在一起适合吗?
谁的导数等于X/(1+X^2)?谢谢
爱人一起旅行的句子,描写旅行孤独心情的诗句
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?