| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1890 人关注过本帖
标题:C++模板问题
取消只看楼主 加入收藏
hkhk366
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2012-10-4
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
C++模板问题
template <typename Container, typename Function>//这一行创建两个模板我看得懂
typename Container::value_type//这一行是什么意思?看不明白
Reduce(const Container& c, Function fn) throw (NotEnoughElements)//这一行这个Reduce函数是哪里的,STL的?
{
}

代码就这么多,求人帮助,谢谢
2016-02-03 13:25
hkhk366
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2012-10-4
收藏
得分:0 
题目是其实就是把代码补全:
Your task is to implement the Reduce function using templates. The Reduce fn
applies a function of two arguments cumulatively to the items of an STL
container, from begin() to end(), so as to reduce the sequence to a single value.
For example, Reduce(<list containing 1,2,3,4,5>, std::plus<int>()) should
calculate ((((1+2)+3)+4)+5).

class NotEnoughElements {};
template <typename Container, typename Function>
typename Container::value_type
Reduce(const Container& c, Function fn) throw (NotEnoughElements)
{
    FILL OUT
}
2016-02-03 13:26
hkhk366
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2012-10-4
收藏
得分:0 
回复 4楼 rjsp
首先感谢你的回复,但是你说话也太难听了吧,什么叫再简单也看不懂,人各有所长,我又不是专注搞这些模板类的,没有必要看不起别人吧,别人问了一个你擅长别人不擅长的问题,身为一个版主你这么说是不是太过了,我也有我擅长的,我会的你未必都会。

你这个答案和这个一模一样http://www.

答案我是有的,我就是想知道那两句话的写法是什么意思

根据我的理解下面这句话的意思是
typename Container::value_type Reduce(const Container& c, Function fn) throw (NotEnoughElements)

typename Container::value_type是取出来Container的里面的类型作为函数Reduce的返回值
const Container& c, Function fn是函数Reduce两个参数
throw (NotEnoughElements)在函数声明部分写不写都能正常运行,只要在函数体里面对应位置有就行了
而typename Container::const_iterator itor则是生成一个Container的对应iterator
而std::plus<int>()相当于加法器处理函数,每次让两个数相加

这次的理解对了吧,谢谢

[此贴子已经被作者于2016-2-4 01:50编辑过]

2016-02-03 23:24
快速回复:C++模板问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024931 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved