工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 3402|回复: 5

能不能通过#include<stack>声明来运用栈模板呀?

[复制链接]
发表于 2007-6-9 14:27 | 显示全部楼层 |阅读模式
能不能通过#include<stack>声明来运用栈模板呀?
如果还要自己建栈的话估计太麻烦了?有哪位达人能说一下?
发表于 2007-6-9 15:16 | 显示全部楼层
#include <stack>
using namespace std;
int main(){
        stack<int> b;
        for(int i=0;i<20;++i)
                b.push(i);
        while(!b.empty()){
                cout<<b.top()<<endl;
                b.pop();
        }
        return 0;
}
回复

使用道具 举报

 楼主| 发表于 2007-6-9 16:45 | 显示全部楼层
如果我同时需要定义两个不同类型的栈,那好像不够呀
回复

使用道具 举报

发表于 2007-6-9 20:15 | 显示全部楼层
stack<ClassName> stackInstance

比如
  1. stack<int> a;
  2. stack<string> b;
  3. stack<ClassIDefined> c;
复制代码



一般为了方便,会在全局范围上定义新类型


  1. #include <stack>

  2. typedef stack<int>  intStack;
  3. typedef stack<string> strStack;

  4. int main(){
  5.     intStack something;
  6.     strStack someOtherThing;
  7.   .....
  8. }
复制代码


原帖由 九月鹰飞 于 2007-6-9 16:45 发表
如果我同时需要定义两个不同类型的栈,那好像不够呀

要定义不同类型的栈,就用不同的模版参数
stack<模版参数>

并不是stack<int>之后就不能再用 stack<string>
再看看模版相关的内容吧……

[ 本帖最后由 iptton 于 2007-6-9 20:17 编辑 ]
回复

使用道具 举报

发表于 2007-6-9 20:19 | 显示全部楼层
LS签名要换啦.....
回复

使用道具 举报

发表于 2007-6-9 20:44 | 显示全部楼层
在这发水帖是要被扣分D。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

QQ|Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2025-8-30 21:19

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表