zoukankan      html  css  js  c++  java
  • C++ STL 常用算术和生成算法

    C++ STL 常用算术和生成算法

    accumulate()

    accumulate: 对指定范围内的元素求和,然后结果再加上一个由val指定的初始值。

    #include<numeric>

    vector<int> vecIntA;
    vecIntA.push_back(1);
    vecIntA.push_back(3);
    vecIntA.push_back(5);
    vecIntA.push_back(7);
    vecIntA.push_back(9);
    int iSum = accumulate(vecIntA.begin(), vecIntA.end(), 100); //iSum==125

    fill()

    fill: 将输入值赋给标志范围内的所有元素。

    vector<int> vecIntA;
    vecIntA.push_back(1);
    vecIntA.push_back(3);
    vecIntA.push_back(5);
    vecIntA.push_back(7);
    vecIntA.push_back(9);
    fill(vecIntA.begin(), vecIntA.end(), 8); //8, 8, 8, 8, 8常用的集合算法

    set_union(),set_intersection(),set_difference()

    set_union: 构造一个有序序列,包含两个有序序列的并集。

    set_intersection: 构造一个有序序列,包含两个有序序列的交集。

    set_difference: 构造一个有序序列,该序列保留第一个有序序列中存在而第二个有 序序列中不存在的元素。

    vector<int> vecIntA;
    vecIntA.push_back(1);
    vecIntA.push_back(3);
    vecIntA.push_back(5);
    vecIntA.push_back(7);
    vecIntA.push_back(9);

    vector<int> vecIntB;
    vecIntB.push_back(1);
    vecIntB.push_back(3);
    vecIntB.push_back(5);
    vecIntB.push_back(6);
    vecIntB.push_back(8);

    vector<int> vecIntC;
    vecIntC.resize(10);

    //并集
    set_union(vecIntA.begin(), vecIntA.end(), vecIntB.begin(), vecIntB.end(), vecIntC.begin()); //vecIntC : {1,3,5,6,7,8,9,0,0,0}

    //交集
    fill(vecIntC.begin(),vecIntC.end(),0);
    set_intersection(vecIntA.begin(), vecIntA.end(), vecIntB.begin(), vecIntB.end(), vecIntC.begin()); //vecIntC: {1,3,5,0,0,0,0,0,0,0}

    //差集
    fill(vecIntC.begin(),vecIntC.end(),0);
    set_difference(vecIntA.begin(), vecIntA.end(), vecIntB.begin(), vecIntB.end(), vecIntC.begin()); //vecIntC: {7,9,0,0,0,0,0,0,0,0}

  • 相关阅读:
    fafu 1231 dp(线段树优化dp)
    OUTLOOK+VBA 备份邮件到GMAIL
    心灵的程序:佛学与计算机
    建议增加编辑器插件“自动排版”
    高效演讲:简单四步走
    找呀找呀找地铁
    为什么你总是烦?
    变形金刚之雷曼疯狂兔子:抽水马桶变身
    客观:别人的主观
    用VBSCRIPT朗读文本
  • 原文地址:https://www.cnblogs.com/lsgxeva/p/7793466.html
Copyright © 2011-2022 走看看