读书人

numeric上的牛逼可以炒股了

发布时间: 2012-08-03 00:12:14 作者: rapoo

numeric下的牛逼,可以炒股了。

不用担心,你没有上当,数据计算,分析一系列的变化非常有用,例如分析股票值的变化,所涉及的就是numeric的计算,请看,相信你不再害怕查文档,不再害怕函数原型

numeric上的牛逼,可以炒股了

分别解说:

下面是函数原型,不要被函数原型吓到了,下面有具体的代码。

1

template<class InIt, class T>
T accumulate(InIt first, InIt last, T val);
template<class InIt, class T, class Pred>
T accumulate(InIt first, InIt last, T val, Pred pr);

2

template<class InIt1, class InIt2, class T>
T product(InIt1 first1, InIt1 last1,
Init2 first2, T val);
template<class InIt1, class InIt2, class T,
class Pred1, class Pred2>
T product(InIt1 first1, InIt1 last1,
Init2 first2, T val, Pred1 pr1, Pred2 pr2);
3
template<class InIt, class OutIt>
OutIt adjacent_difference(InIt first, InIt last,
OutIt result);
template<class InIt, class OutIt, class Pred>
OutIt adjacent_difference(InIt first, InIt last,
OutIt result, Pred pr);
4

template<class InIt, class OutIt>
OutIt partial_sum(InIt first, InIt last,
OutIt result);
template<class InIt, class OutIt, class Pred>
OutIt partial_sum(InIt first, InIt last,
OutIt result, Pred pr);

一:accumulate

#include<iostream>
#include<string>
#include<numeric>
#include<vector>
#include<functional>
using namespace std;
int jiayibai(int a,int b){
return a+b*2;
}
int main(){
int a[]={1,2,3,4,5,6,7,8,9,10};
vector<int>v(a,a+10);
int sum=accumulate(v.begin(),v.end(),0);
cout<<sum<<endl;
int sum1=accumulate(v.begin(),v.end(),0,jiayibai);
cout<<sum1<<endl;
int sum2=accumulate(v.begin(),v.end(),0,minus<int>());
cout<<sum2<<endl;
system("pause");
return 0;
}

numeric上的牛逼,可以炒股了

二:inner_product

#include<iostream>
#include<string>
#include<vector>
#include<functional>
#include<numeric>
using namespace std;
int xiangjian (int x, int y) {return x-y;}
int xiangjia (int x, int y) {return x+y;}

int main(){
int a[]={1,2,3,4,5};
int b[]={5,4,3,2,1};
vector<int>v(a,a+5);
vector<int>vv(b,b+5);
int ji1=inner_product(v.begin(),v.end(),vv.begin(),0);
cout<<ji1<<endl;
int ji2=inner_product(v.begin(),v.end(),vv.begin(),0,xiangjian,xiangjia);
cout<<ji2<<endl;
int ji3=inner_product(v.begin(),v.end(),vv.begin(),0,minus<int>(),divides<int>());
cout<<ji3<<endl;
system("pause");
return 0;
}

numeric上的牛逼,可以炒股了

三:adjacent_difference

#include<iostream>
#include<string>
#include<vector>
#include<numeric>
using namespace std;
int xiangjia(int a,int b){
return a+b;
}
int main(){
int a[]={1,3,5,7,10};
vector<int>v(a,a+5);
vector<int>vv(5);
adjacent_difference(v.begin(),v.end(),vv.begin());
for(vector<int>::iterator itera=vv.begin();itera!=vv.end();++itera){
cout<<*itera<<" ";
}
cout<<endl;
adjacent_difference(v.begin(),v.end(),vv.begin(),xiangjia);
for(vector<int>::iterator iterb=vv.begin();iterb!=vv.end();++iterb){
cout<<*iterb<<" ";
}
cout<<endl;
adjacent_difference(v.begin(),v.end(),vv.begin(),minus<int>());
for(vector<int>::iterator iterc=vv.begin();iterc!=vv.end();++iterc){
cout<<*iterc<<" ";
}
cout<<endl;
system("pause");
return 0;
}

numeric上的牛逼,可以炒股了

四:partial_sum

#include<iostream>
#include<string>
#include<vector>
#include<numeric>
#include<functional>
using namespace std;
int xiangjia(int a,int b){
return a+b;
}
int main(){
int a[]={4,5,7,3,6};
vector<int>v(a,a+5);
vector<int>vv(5);
partial_sum(v.begin(),v.end(),vv.begin(),xiangjia);
for(vector<int>::iterator itera=vv.begin();itera!=vv.end();++itera){
cout<<*itera<<" ";
}
cout<<endl;
partial_sum(v.begin(),v.end(),vv.begin());
for(vector<int>::iterator iterb=vv.begin();iterb!=vv.end();++iterb){
cout<<*iterb<<" ";
}
cout<<endl;
partial_sum(v.begin(),v.end(),vv.begin(),multiplies<int>());
for(vector<int>::iterator iterc=vv.begin();iterc!=vv.end();++iterc){
cout<<*iterc<<" ";
}
cout<<endl;
system("pause");
return 0;
}
numeric上的牛逼,可以炒股了

读书人网 >编程

热点推荐