九月鹰飞 发表于 2007-6-9 14:27

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

能不能通过#include<stack>声明来运用栈模板呀?
如果还要自己建栈的话估计太麻烦了?有哪位达人能说一下?

小I 发表于 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

如果我同时需要定义两个不同类型的栈,那好像不够呀

iptton 发表于 2007-6-9 20:15

stack<ClassName> stackInstance

比如
stack<int> a;
stack<string> b;
stack<ClassIDefined> c;


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


#include <stack>

typedef stack<int>intStack;
typedef stack<string> strStack;

int main(){
    intStack something;
    strStack someOtherThing;
.....
}

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

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

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

移民火星 发表于 2007-6-9 20:19

LS签名要换啦.....

iptton 发表于 2007-6-9 20:44

在这发水帖是要被扣分D。。。
页: [1]
查看完整版本: 能不能通过#include<stack>声明来运用栈模板呀?