算术生成算法

accumulate算法

计算容器元素累计总和

# include <numeric>
# include <algorithm>

T accumulate(iterator beg,iterator end,value)

@param beg 开始
@param end 结束
@param value 累加器
@return 其实累加值  

fill 算法

向容器中添加元素
需要提前resize!!!


file(iterator beg,iterator end,value)

@param beg
@param end
@value 填充值

常用集合算法

使用前记得给目标容器resize()!!!!

set_intersection算法

interator set_intersection(interator beg1,interator end1,interator beg2,interator end2,interator target)

交集

@param beg1
@param end1
@param beg2
@param end2
@param target 目标容器的起始迭代器
@return 存放的最后一个元素的迭代器

set_union算法

interator set_union(interator beg1,interator end1,interator beg2,interator end2,interator target)

并集

@param beg1
@param end1
@param beg2
@param end2
@param target 目标容器的起始迭代器
@return 存放的最后一个元素的迭代器

set_difference算法

interator set_difference(interator beg1,interator end1,interator beg2,interator end2,interator target)

差集

@param beg1
@param end1
@param beg2
@param end2
@param target 目标容器的起始迭代器
@return 存放的最后一个元素的迭代器

代码示例

/*************************************************************************
	> File Name: main.cpp
	> Author: 
	> Mail: 
	> Created Time: 2020年01月01日 星期三 14时22分05秒
 ************************************************************************/

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

void test01()
{
    vector<int> v1;
    vector<int> v2;
    for(int i=0;i<10;i++)
    {
        v1.push_back(i);
        v2.push_back(i+5);
    }
    vector<int> vTarget(min(v1.size(),v2.size()));
    vector<int>::iterator isEnd=set_intersection(v1.begin(),v1.end(),v2.begin(),v2.end(),vTarget.begin());
    copy(vTarget.begin(),isEnd,ostream_iterator<int>(cout," "));
    cout<<endl;

}
int main()
{
    test01();
    return 0;
}

集合.jpg