直接代码如下:
//数值计算
//accumulate
#include<iostream>
#include<string>
#include<algorithm>
#include<numeric>
#include<functional>
#include<vector>
using namespace std;
int main(){
int a[]={1,2,3,4,5,6,7,8,9,10};
vector<int>v(a,a+10);
int max=accumulate(v.begin(),v.end(),0);
cout<<max<<endl;
int jianyibai=accumulate(v.begin(),v.begin()+4,1,multiplies<int>());
cout<<jianyibai<<endl;
system("pause");
return 0;
}
//inner_product
#include<iostream>
#include<string>
#include<vector>
#include<numeric>
#include<algorithm>
#include<functional>
using namespace std;
int main(){
int a[]={1,2,3,4,5,6,7,8,7,9,10};
vector<int>v(a,a+10);
vector<int>vv(a,a+10);
int max=inner_product(v.begin(),v.end(),vv.begin(),1);
cout<<max<<endl;
cout<<inner_product(v.begin(),v.begin()+5,vv.begin(),1,multiplies<int>(),plus<int>());
cout<<endl;
system("pause");
return 0;
}
//partial_sum
#include<iostream>
#include<string>
#include<vector>
#include<numeric>
#include<algorithm>
using namespace std;
int main(){
int a[]={1,2,3,4,5,6};
vector<int>v(a,a+6);
partial_sum(v.begin(),v.end(),ostream_iterator<int>(cout," "));
cout<<endl;
partial_sum(v.begin(),v.end(),ostream_iterator<int>(cout," "),multiplies<int>());
cout<<endl;
system("pause");
return 0;
}
//adjacent_difference
#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
#include<numeric>
#include<functional>
using namespace std;
int main(){
int a[]={1,2,3,4,5,6,7,8,9,10};
vector<int>v(a,a+10);
adjacent_difference(v.begin(),v.end(),ostream_iterator<int>(cout," "));
cout<<endl;
adjacent_difference(v.begin(),v.end(),ostream_iterator<int>(cout," "),plus<int>());
cout<<endl;
system("pause");
return 0;
}
C++数值计算实例
本文通过C++代码演示了数值计算中的几个关键算法,包括累积求和(accumulate)、内积(inner_product)、部分求和(partial_sum)及相邻元素差(adjacent_difference)。通过具体的例子展示了如何使用STL算法来简化数值计算过程。
182

被折叠的 条评论
为什么被折叠?



