STL- 算法(3) 常用算术生成算法、集合算法
算术生成算法
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;
}
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment