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

来源:互联网 发布:杭州淘宝公司招聘 编辑:程序博客网 时间:2024/04/30 11:07

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
0 0
原创粉丝点击