数值算法

#include<numeric>
#include<iostream>
#include<algorithm>
#include<functional>
#include<iterator>
#include<vector>
#include<cmath>
using namespace std;

void main()
{
    int ia[5]={1,2,3,4,5};
    vector<int> iv(ia,ia+5);
    cout<<accumulate(iv.begin(),iv.end(),0)<<endl;//0+1+2+3+4+5=15
    cout<<accumulate(iv.begin(),iv.end(),0,minus<int>())<<endl;//0-1-2-3-4-5=-15
    cout<<inner_product(iv.begin(),iv.end(),iv.begin(),10)<<endl;//10+1*1+2*2+3*3+4*4+5*5=65
    cout<<inner_product(iv.begin(),iv.end(),iv.begin(),10,minus<int>(),plus<int>())<<endl;//10-1+1-2+2-3+3-4+4-5+5=-20

    ostream_iterator<int> oite(cout," ");
    partial_sum(iv.begin(),iv.end(),oite);//1 3 6 10 15(第n个新元素是前n个旧元素的相加总计)
    cout<<endl;
    partial_sum(iv.begin(),iv.end(),oite,minus<int>());//1 -1 -4 -8 -13(第n个元素是前n个旧元素的运算总计)
    cout<<endl;
    adjacent_difference(iv.begin(),iv.end(),oite);//1 1 1 1 1 1(#1元素照录,#n新元素等于#n旧元素-#n-1旧元素)
    cout<<endl;
    adjacent_difference(iv.begin(),iv.end(),oite,plus<int>());//1 3 5 7 9(#1元素照录,#n新元素等于op(#n旧元素,#n-1旧元素)
    cout<<endl;

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值