#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()应该怎么写?
高手求教!!
C语言 stack STL应用
答案:4 悬赏:60 手机版
解决时间 2021-03-02 20:36
- 提问者网友:不爱我么
- 2021-03-02 08:43
最佳答案
- 五星知识达人网友:一叶十三刺
- 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");
}
这样?
#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了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯