永发信息网

C语言 stack STL应用

答案:4  悬赏:60  手机版
解决时间 2021-03-02 20:36
  • 提问者网友:不爱我么
  • 2021-03-02 08:43
#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()应该怎么写?
高手求教!!
最佳答案
  • 五星知识达人网友:一叶十三刺
  • 2021-03-02 09:21
#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");
}

这样?
全部回答
  • 1楼网友:山河有幸埋战骨
  • 2021-03-02 12:17
这个已经自动封装好的。 element t; s.push(t); s.pop(); 这么样。试试。
  • 2楼网友:duile
  • 2021-03-02 11:25
不可以。 stl即standard template library,也就是标准模板库。是针对c++语言进行开发的,里面使用了重载,模板等等技术。 这些技术都是c++所特有的,c语言并不支持。 所以在c语言中无法使用stl。 当c语言编程中需要类似功能时,可以自行实现类似的,c语言可用的函数接口。
  • 3楼网友:轻雾山林
  • 2021-03-02 10:12
stack <element> s; element t; t.x = 1; t.y = 2; s.push(t); s.pop(); 操作方式是一样的,只是传入的类型变为element了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯