C++学习之计算均值和方差

Vector 计算 均值(mean) 和 方差(variance)

vector<>类型的数组, 计算均值和方差的最简方法.


代码:

[cpp]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. double sum = std::accumulate(std::begin(resultSet), std::end(resultSet), 0.0);  
  2. double mean =  sum / resultSet.size(); //均值  
  3.   
  4. double accum  = 0.0;  
  5. std::for_each (std::begin(resultSet), std::end(resultSet), [&](const double d) {  
  6.     accum  += (d-mean)*(d-mean);  
  7. });  
  8.   
  9. double stdev = sqrt(accum/(resultSet.size()-1)); //方差  
转载自:http://blog.csdn.net/caroline_wendy/article/details/24623187

accumulate定义在#include<numeric>中,作用有两个,一个是累加求和,另一个是自定义类型数据的处理

1.累加求和

[cpp]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. int sum = accumulate(vec.begin() , vec.end() , 42);  

accumulate带有三个形参:头两个形参指定要累加的元素范围,第三个形参则是累加的初值。

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

可以使用accumulate把string型的vector容器中的元素连接起来:

[cpp]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. string sum = accumulate(v.begin() , v.end() , string(" "));  
这个函数调用的效果是:从空字符串开始,把vec里的每个元素连接成一个字符串。
转载自:http://blog.csdn.net/u011499425/article/details/52756242
 C++经典书目索引及资源下载:http://blog.csdn.net/jerryjbiao/article/details/7358796
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值