• C++ STD inner_product函数


    C++ STD函数

     
    inner_product是c++标准库封装的一个函数。
    函数原型:
         函数1: inner_product(beg1, end1, beg2, init)
         函数2: inner_product(beg1, end1, beg2, init, BinOp1, BinOp2)
    函数介绍:
          返回作为两个序列乘积而生成的元素的总和。步调一致地检查两个序列,将
        来自两个序列的元素相乘,将相乘的结果求和。由 init 指定和的初值。假定从
        beg2 开始的第二个序列具有至少与第一个序列一样多的元素,忽略第二个序列
        中超出第一个序列长度的任何元素。init 的类型决定返回类型。
      函数1: inner_product(beg1, end1, beg2, init)
         使用元素的乘操作符(*)和加操作符(+)。
       如:给定两个序列 2,3,5,8和 1,2,3,4,5,6,7,结果是初值加上下面的乘积对:
         return initial_value + (2 * 1) + (3 * 2) + (5 * 3) + (8 * 4)  // 如果提供初值 0,则结果是 55。
      函数2:应用指定的二元操作,使用第一个操作代替加而第二个操作代替乘。
       如:给定两个序列 2,3,5,8和 1,2,3,4,5,6,7
          结果是:initial * 2 + 1 * 3 + 2 * 5 + 3 * 8 + 4   //即使加变乘,乘变加
    测试代码:

    #include <numeric>
    #include <iterator>
    #include <ostream>
    #include <iostream>
    #include <list>

    using namespace std;

    using namespace std;


    int main(){

    list<int> coll;
    coll.push_back(1,2,3,4,5,6);

    list<int>::iterator i;

    for(i=coll.begin();i!=coll.end();i++)
    cout<<*i<<" ";

    cout<<"inner reverse product:"<<inner_product(coll.begin(),coll.end(),coll.begin(),0)<<endl;//(0+1×1 +2×2 +3×3+4×4+5*5+6*6)


    cout<<"inner reverse product:"<<inner_product(coll.begin(),coll.end(),coll.rbegin(),0)<<endl;//(0+1×6 +2×5+3×4+4×3+5*2+6*1)

    //(1* 1+1 * 2+2 * 3+3 * 4+4 * 5+5 * 6+6)
    cout<<"product of sums:"<<inner_product(coll.begin(),coll.end(),coll.begin(),1,multiplies<int>(),plus<int>())<<endl;


    return 0;
    }

     结果: 1 2 3 4 5 6 inner reverse product:91
    inner reverse product:56
    product of sums:46080
     
     
  • 相关阅读:
    递归要记得返回
    git push的时候报Unable to find remote helper for 'https'的错误
    iphone手机上的click和touch事件
    对jquery的conflict方法的解读
    开发富文本编辑器的一些体会
    使用jquery制作动态加载型菜单
    解决jquery$命名符和其它框架的冲突问题
    基于geolocation来获取经纬度地址
    Python学习笔记2解析数据
    Python学习笔记1数据类型
  • 原文地址:https://www.cnblogs.com/FuLiuWei/p/fuliuweistd.html
Copyright © 2020-2023  润新知