注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

记录~~~

Stay Hungry. Stay Foolish.

 
 
 

日志

 
 

11.2.1 只读算法  

2013-06-29 17:42:25|  分类: C/C++ |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

[root@localhost testc++]# vi 11-chukuisuanf.cpp

1 #include <iostream>
2 #include <vector>
3 #include <algorithm>
4 #include <numeric>
5 using namespace std;
6
7 int main()
8 {
9 int ival;
10 vector<int> vec;
11 while( cin >> ival)
12 vec.push_back(ival);
13 int sum =accumulate(vec.begin(),vec.end(),0);
14 cout << sum << endl;
15 return 0;
16 }

//accumulate:

  accumulate有三个形参:头两个元素指定要累加的范围,第三个是要累加的初始值。accumulate函数将他的一个内部变量设置为指定的初值,然后在此基础上,累加输入范围内所有元素的值。accumulate算法返回累加的结果,其返回类型就是第三个参数的类型。

 用于指定累加初始值的第三个实参是必要的,因为accumulate对将要累加的元素类型一无所知。因此,除此之外,没有别的办法创建合适的起始值或这关联的类型。

容器内元素类型一定要与第三个实参的类型匹配,或者可以转换为第三个参数的类型


但即使强制转换的类型  往往也会报错,例如 double型转换为int时,会截去小数部分。取得和只是整数部分的,会产生一个较大的误差。

但如果是 int型强制转换为double就没事了!!!!
  评论这张
 
阅读(100)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017