永发信息网

C语言 stack STL应用

答案:4  悬赏:60  手机版
解决时间 2021-03-02 20:36
#include <iostream>
#include <Stack>
using namespace std;
typedef struct
{
int x;
int y;
}element;
void main()
{
stack<double> s;
for( int i=0; i < 10; i++ )
s.push(i);
while(!s.empty())
{
printf("%lf\n",s.top());
s.pop();
}
cout << "This stack has a size of " << s.size() << endl;
}

这个代码是对的,我现在想将element作为栈的元素,应该怎样修改??
PS:我在stack<element>s这样修改不提示错。可是push(),pop()应该怎么写?
高手求教!!
最佳答案
#include <iostream>
#include <Stack>
using namespace std;
typedef struct
{
int x;
int y;
}element;
void main()
{
stack<element> s;
element ele;
for( int i=0; i < 10; i++ )
{
ele.x = i;
ele.y = i;
s.push(ele);
}

while(!s.empty())
{
ele = s.top();
printf("%d\t%d\n",ele.x,ele.y);
s.pop();
}
cout << "This stack has a size of " << s.size() << endl;
system("pause");
}

这样?
全部回答
这个已经自动封装好的。 element t; s.push(t); s.pop(); 这么样。试试。
不可以。 stl即standard template library,也就是标准模板库。是针对c++语言进行开发的,里面使用了重载,模板等等技术。 这些技术都是c++所特有的,c语言并不支持。 所以在c语言中无法使用stl。 当c语言编程中需要类似功能时,可以自行实现类似的,c语言可用的函数接口。
stack <element> s; element t; t.x = 1; t.y = 2; s.push(t); s.pop(); 操作方式是一样的,只是传入的类型变为element了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
买始发站的动车票,下一站上车能让吗?
电源额定功率430W,是不是开机后就每小时消耗4
白门为什么比红色门贵啊?免漆门和烤漆门区别
阜阳师范学院清河校区-外语系地址在什么地方
什么牌子的小型家用电饭锅实用?
射门 英文怎么写?
板可我想知道这个在什么地方
唯美时尚造型这个地址在什么地方,我要处理点
梦幻西游 最垃圾攻孩子怎么养?
从日本寄CD回国可以么 用EMS
炎炎景历,亿万斯年出自哪里,是什么意思
信用卡能用到多少岁
山东皓盾钢化玻璃有限公司(西门)地址在哪,我
男人接吻moxiong正常吗
魔兽世界部落玩术士,选什么种族最合适
推荐资讯
鸠摩罗什是否娶妻,生平事迹,还有妻子是谁?
微信如何传大文件
亚索什么情况出电刀什么时候出绿叉
07年的奥拓隔审车的多少钱审车,这车还能过户
Indesign CS3打开方式问题,我的这个只能拖到
谁知道陈百强的死因?
爸爸姓余妈妈姓莫狗年女宝宝取名
著名历史学家陈旭麓有一句名言:“中国不是自
【馨香的近义词】馨香的反义词、近义词是什么
什么东西,因残缺而更加完美或更加精彩?可以是
骄傲,含有褒义,造句
开水冷了,再加热一下没烧开,可以喝吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?