C++ STL inner_product函数的使用方法
//演示inner_product的各种正确打开方式#include <iostream>#include <list>#include <numeric>#include <algorithm>using namespace std;//for_each中打印容器中的元素void pr
·
//演示inner_product的各种正确打开方式
#include <iostream>
#include <list>
#include <numeric>
#include <algorithm>
using namespace std;
//for_each中打印容器中的元素
void print(int ele){
cout<<ele<<",";
}
int op1(int initV,int ele3){
return initV+ele3;
}
int op2(int ele1,int ele2){
return ele1*2+ele2*2;
}
int main()
{
int dim[]={1,2,3,4,5,6,7,8,9,10};
int dim2[]={3,4,5,6,7,8,9,10,11,12};
list<int> l1,l2;
//copy函数中利用back_inserter初始化list容器l1
copy(dim,dim+10,back_inserter(l1));
for_each(l1.begin(),l1.end(),print); //显示l1
cout<<endl;
copy(dim2,dim2+10,back_inserter(l2));
for_each(l2.begin(),l2.end(),print); //显示l2
cout<<endl;
//求l1和l2的内积并加初值0
int prod=inner_product(l1.begin(),l1.end(),l2.begin(),0);
cout<<"inner_product(l1.begin(),l1.end(),l2.begin(),0): "<<prod<<endl;
//执行op1(initV,op2(l1,l2));
prod=inner_product(l1.begin(),l1.end(),l2.begin(),1,op1,op2);
cout<<"inner_product(l1.begin(),l1.end(),l2.begin(),1,op1,op2): "<<prod<<endl;
//求l1与l2的内积并加上初值1
prod=inner_product(l1.begin(),l1.end(),l2.begin(),1,plus<int>(),multiplies<int>());
cout<<"inner_product(l1.begin(),l1.end(),l2.begin(),1,plus<int>(),multiplies: "<<prod<<endl;
return 0;
}
更多推荐
已为社区贡献2条内容
所有评论(0)