您的位置:程序门 -> c/c++ -> c++ 语言



模板的问题 看范型编程与stl 的问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


模板的问题 看范型编程与stl 的问题[已结贴,结贴人:zlj_job]
发表于:2007-03-07 12:48:54 楼主
范型编程与stl     的第四章钟   提到了一段代码:如下:
template   <class   inputiterator,class   predicate>   inputiterator   findif(inputiterator   first,inputiterator   last,predicate   pre)
{
  。。。
      。。。
}
我可以用
inputiterator   findif(inputiterator   first,inputiterator   last,predicate   pre)
{
  。。。
      。。。
}来代替吗?

若   可以代替   stl   这个定义   有什么好处呢?
发表于:2007-03-07 12:53:081楼 得分:0
嗯?模板的基础知识,你到底学过没有?
发表于:2007-03-07 12:56:472楼 得分:0
我刚开始学模板   可以这样代替吗?
发表于:2007-03-07 12:59:163楼 得分:0
inputiterator     是个   类,而   我可以自己定义   predicate  
这样就可以   把   inputiterator,predicate   当作函数的参数了
这么做有什么不对吗?
发表于:2007-03-07 13:02:264楼 得分:0
那为什么不编段程序试一下呢?
发表于:2007-03-07 13:07:045楼 得分:0
编译不能通过,应为找不到inputiterator   的头文件
发表于:2007-03-07 13:10:096楼 得分:0
呃~
lz先回答一下如何声明一个函数模版?
发表于:2007-03-07 13:12:117楼 得分:0
所以,你还是找c++   primer再把模板的基础知识加强一下吧。你现在看《范型编程与stl》恐怕还早了一点。
inputiterator     不是个   类,只是表示它应该是一个类型。
发表于:2007-03-07 13:12:328楼 得分:0
我明白了inputiterator   并不是类   而是模板     但是把模板当作   另外一个模板的参数   可以吗?
发表于:2007-03-07 13:16:239楼 得分:0
可以。模板的模板参数。当然,vc6是不支持的。
发表于:2007-03-07 13:21:4710楼 得分:0
那么按我的想法   应该是这样定义的阿
template   <class   inputiterator,class   predicate>   inputiterator   findif(inputiterator <...>   first,inputiterator <...>   last,predicate   pre)
{
。。。
。。。
}

为什么   在函数之中引用   这个本身是模板的模板参数   却没有模板参数呢?
发表于:2007-03-07 13:25:3511楼 得分:40
去补基础知识。模板的模板参数不是这么写的。
发表于:2007-03-07 13:28:3212楼 得分:0
我了了   thanks


快速检索

最新资讯
热门点击